Redmine issue to Excel File Format (.xlsx) Conversion Tool.
Redmineに、Excelファイル(.xlsx)をインポート/エクスポートできる機能を追加します。
が、プラグインを作るのは大変なので、ExpressでWebサーバーを立ててAPIで連携します。
(以下、書きかけです。ごめんなさい。あと英語出来ません。重ね重ねごめんなさい)
http://localhost:3000/issues/1 にアクセスすると、チケット#1をExcel形式でインポート/エクスポートできる画面を表示します。
このツールはExpressをベースとし、下記のnpmモジュールを使用しています。
- xlsx-populate Excelファイルの読み書き
- Request - Simplified HTTP client Redmine Rest APIとの通信
- Request-Promise-Native 同上
- Bootstrap
- jQuery
- moment 日付の計算
Redmineと同じサーバー上に
git clone git://github.com/8amjp/redmine-xlsx.git
で取得して、
npm install
で追加モジュールをインストールしてください。
起動前にいくつか準備するものがあります。
この設定ファイルでは、以下の項目を指定します。
- api_key: Redmineと連携するためのAPIアクセスキーを指定します。
- api_base_url:
- host_name:
- defaults プロジェクトID等の既定値を指定します。
Excelファイル(.xlsx)のエクスポートは、事前に用意したテンプレートファイルを読み込んで追記する方式を取っています。
そのテンプレートファイルの名前、またマッピングテーブル(チケットの項目とセル番号との対比表)についてはこの設定ファイルで指定します。
テンプレートファイル、及びマッピングテーブルは、次の3種類の指定方法があります。
- Redmine全体で1つだけ準備する
- Redmineの「プロジェクト」毎に準備する
- Redmineの「プロジェクト」及び「トラッカー」毎に準備する
public/templates
ディレクトリ内の
チケットの項目が、どのセルに対応しているのかを記述します。
{ "id" : 2, "cell" : "C2", "type" : "datetime" }
下記のように指定します。
{ "id" : 3, "cell" : [
{ "value" : "1", "cell" : "C3" },
{ "value" : "2", "cell" : "D3" },
{ "value" : "3", "cell" : "E3" }
], "type" : "enumeration", "multiple" : true}
cell
の一番目で指定されたセルの値がtrueの場合、value
の一番目で指定された値が入力されます。