【まとめ】RedmineチケットをExcelに取り込む9通りの方法

country-girl-933925_1280

いよいよ夏本番ですね!☀️もうお盆休みの計画は立てましたか?
我が家では「キャンプに連れてけー」って、連日、呪文のように言われています。🎃

これまで、RedmineからExcelへの「チケットインポート方法」を色々紹介してきましたが、色々あり過ぎて(ぼくも)混乱しそうなので、ここで一つまとめ記事を書いてみました。

各方法について、特長やデメリットを紹介しているので、インポート方法を選択するときの参考にしてもらえると嬉しいです。関連する過去記事がある場合は、そのリンク先も記載しています。

スポンサーリンク

Redmineチケットのインポート図解

RedmineからExcelへのチケットインポート方法を図解すると、次のようになります。

これ、方眼紙にしたExcelに作成して、ビットマップでコピーして貼り付けてます😉

Excelへのインポート方法は、Redmineからか(➀~➄)、MySQLからか(➅~➈)で、2つに大きく分類できます。

Redmineからの場合➀〜➄

データベースの構造を知らなくても大丈夫なので、手軽にインポートできます。コード変換などの面倒な処理も、すべてRedmineがやってくれます。

取得できる情報は、Redmineが用意しているものだけなので、画一的で自由度の低い点がデメリットです。各情報を関連付けて複雑な集計や分析をするのには、向いていません。

では、➀から➄までを説明します。

➀チケット一覧のURLから直接インポートする

「Power Query for Excel」を使えば、チケット一覧のURLを指定するだけで、直接Excelシート上にインポートできます。テーブルへの加工まで自動でしてくれるので、現時点で最も簡単な方法かもしれません。

このアドインは、「Power BI(ビジネスインテリジェンス)」への連携を目的にしたETLツールになっていて、Excelのテーブル(表)を操作する感覚で、データ加工できるのが特長です。

実際に試して記事にしていますので、良ければご覧ください。

Power Queryで一覧画面から直接Redmineチケットを取り込む
Power Queryを使用すると、Redmineのチケット一覧画面から、直接Excelシートにチケットをインポートできます。RedmineでCSVエクスポートしてからインポートするよりも、手間がかからず便利ですね。エクスポート数の制約も受けません。

➁REST結果をファイル保存して読み込む

RESTで取得したXML形式のデータを。一旦ファイルに保存して、Excelの外部データ取り込み機能でインポートします。

Firefox(Webブラウザ)本体や「Poster(Firefoxのアドオン)」などのRESTクライアントを使えば、RESTとその結果のファイル保存ができます。

[抽出/REST] Redmine公式サイトの全チケットをコツコツと取得しました
これまで紹介してきたMicrosoft AccessでMySQL(Redmine)を集計する実例を示したいと思い、公開されている良いデータはないかと色々考えた結果、Redmine公式サイトのチケットを取得して使うことにしました。
FirefoxのRESTクライアントを使ってRedmineにチケットを追加
REST機能(RedmineAPI)を使って、Redmineにチケットを登録してみました。ExcelやAccessでマクロを組んで大量投入することもできますが、今回は、Firefoxのアドオン「Poster」からRESTする方法を紹介します。

ExcelによるXMLファイルのインポートについては、次の記事で詳しく紹介しています。

[変換/Excel] 複数のXMLファイル(Redmineチケット)をブックにまとめる方法
Excelの機能で、複数のXMLファイルを一つのブックにまとめる方法を紹介します。Redmine公式サイトから取得したチケットの152個のXMLファイルを一つのブックにまとめました。XMLファイルの変換・加工にはExcelが便利ですよ。

➂RedmineとのRESTをVBAで処理する

上記➁の一連の作業を、「Excel VBA」で自動実行する方法です。「Access VBA」でも同様のことができます。

まだ関連する記事がありませんので、また具体的な方法を紹介したいと思います。

➃CSVにエクスポートして読み込む

最も標準的な方法です。💮

Redmineのチケット一覧画面から、CSVにエクスポートして読み込みます。

CSVへのエクスポートはサーバーに負荷がかかるので、エクスポート数の上限が低めに設定されている場合があります。上限次第では、何回もに分けてエクスポートしなければならず、結構な手間がかかります。

また、Excel側の方も、大量のCSVの読み込みには、意外と時間がかかる場合があります。

➄エクスポートしたCSVをAccess経由で読み込む

上記➃のCSVを、一旦Accessを経由して読み込む方法です。Accessは、ExcelよりもCSVの読み込みが速い上、「Schema.ini」を使用して、各カラムのデータタイプを設定することもできます。

ですが、この方法の一番の特長は、Accessの便利なクエリー機能を使って、データを変換・加工できる点だと思います。

具体的な方法については、また別の記事で紹介します。

MySQLからの場合⑥〜⑨

Redmineの制約を受けないので、自由度が高く、必要に応じてデータを変換・加工してインポートできます。チケット(issuesテーブル)だけでなく、ユーザー情報やワークフローなど様々なデータをインポートできるので、Excelで設定をドキュメント化するのにも向いています。

特に、「MySQL→Access→Excel」の連携は、Accessのクエリー機能を使って、データを変換・加工できるので便利です。

デメリットは、Redmineのデータベース構造の知識に加え、MySQLやAccess、Excelの少し高度な知識が必要なことです。ちょっと、敷居を高く感じるかもしれません。

➅ODBC接続したAccessから取り込む

MySQL(Redmine)にODBC接続したAccessを経由して、Excelにインポートする方法です。

Accessのクエリー機能を使ってデータを変換・加工した後、Excelに取り込むことができて便利です。

次の記事で詳しく解説していますので、ご覧ください。

AccessをMySQL(Redmine)に接続する方法
ODBCドライバーを使用して、Microsoft Access(以下 Access)をMySQL(Redmine)に接続する方法を紹介します。Accessに、MySQL(Redmine)の各テーブルをデータごと取り込んだり、リンクテーブルを作成してクエリーで集計することができるようになります。

➆Microsoft QueryでSQLを編集して取り込む

Accessを使わずに、ExcelをMySQL(Redmine)にODBC接続して、Excelにインポートする方法です。

インポートで使用するSQLの編集には、「Microsoft Query」を使用します。Accessは使いませんが、「Microsoft Query」自体がAccessの簡易版みたいな上に、ちょっと操作性がイマイチです。

次の記事で、方法を解説しています。

[Microsoft Query] ExcelをMySQL(Redmine)に接続する方法
以前、ODBCドライバーを使用して、AccessをMySQL(Redmine)に接続する方法を紹介しました。今回は、そのExcel版を紹介します。

➇Power QueryでSQLを編集して取り込む

上記➆の「Power Query for Excel」版です。「Power Query for Excel」でインポートで使用するSQLを編集します。

「Microsoft Query」がAccessの操作感でSQLを編集できるのに対して、「Power Query for Excel」はExcelのテーブルを操作する感覚でSQLを編集できます。

実際に試して記事にしていますので、良ければご覧ください。

「Power Query  for Excel」を使ってMySQL(Redmine)に接続
新しいExcelのアドイン『Microsoft Power Query for Excel』を試してみました。クエリの編集は、まるでExcelのテーブルを操作するような感覚です。実際に、MySQL(Redmine)からデータを抽出できましたので、その方法を紹介します。

➈アプリケーションを介して取り込む

MySQL(Redmine)に接続した「A5:SQL Mk-2」の機能を使って、Excelシートに直接エクスポート(Excelから見ればインポート)できます。

「A5:SQL Mk-2」の接続方法については、次の記事をご覧ください。

A5:SQL Mk-2をMySQL(Redmine)に接続する方法
『A5:SQL Mk-2』のインストールから、Bitnami Redmine StackのMySQL(Redmine)に接続するまでを解説します。