はじめに
Redmineで複数のプロジェクトを跨ってチケットを一覧し、状況の整理や自分の作業メモを記載したく、Excel上からRedmineにアクセスして情報を取ってくる方法を探してみました。
ExcelにRedmine情報をもってくる方法の調査
Redmineからチケット情報をCSVエクスポートしてもってくる方法は、Redmineのプロジェクト複数をまたがったチケットを収集するのにかなり手間がかかる(プロジェクトごとにチケット一覧を絞り込んでCSVエクスポートし、それをマージする)ほか、Excel側でメモなどを追記した後にチケットの状態(担当者、ステータスなど)が変化したときにそれをExcel側に反映するのが面倒です。
次に、REST APIをExcel上から呼び出す方法を探しました。Excel VBAでMSXML2.DOMDocumentを使う方法は、Windows限定となってしまい、macOSでは動作しないのでこの方法は使えませんでした。REST APIの処理(応答のXMLをべたにVBAで解析する処理を記述)は、やりたくないなぁ。
ということで、PythonからRedmineとExcelにアクセスして両者をつなぐ方法を使うことにしました。
調査の中で、RedmineとExcelを結ぶ方法を一覧整理し紹介しているブログ記事を見つけましたので次にメモしておきます。この記事では、CSVエクスポート、REST APIだけでなく、Power QueryやAccessなどを使う方法(Redmineのバックエンドで動くRDBMSへのアクセスを含む)など幅広く紹介されています。
Pythonからのアクセスライブラリ
PythonからRedmine
PythonからRedmineへのアクセスは、Python-Redmineライブラリを使いました。
Python-Redmine — Python-Redmine documentation
REST APIを使ってPythonコード上でRedmineから情報を取得すること、Redmineの更新をすることが可能です。
次のWikiに極簡単なさわり部分(Redmineに接続してID指定でチケット情報を取得するだけの極簡単な)のコードを記述しました。
Python-Redmine - ソフトウェアエンジニアリング - Torutk
PythonからExcel
PythonからExcelへのアクセスは、openpyxlライブラリを使いました。PythonからExcelにアクセスするライブラリはざっと調べた限りでも4、5種類存在します。その中で、Excelファイル(.xlsx)の読み書きができ、シートのセルの読み書きが簡単に記述できるopenpyxlを使ってみました。
次のWikiにPythonからExcelにアクセスするライブラリの一覧をメモしました。
Python-Excel - ソフトウェアエンジニアリング - Torutk
そのうち、コード例などを追記する予定です。