torutkのブログ

ソフトウェア・エンジニアのブログ

ExcelからRedmineへのアクセス

はじめに

Redmineで複数のプロジェクトを跨ってチケットを一覧し、状況の整理や自分の作業メモを記載したく、Excel上からRedmineにアクセスして情報を取ってくる方法を探してみました。

ExcelRedmine情報をもってくる方法の調査

Redmineからチケット情報をCSVエクスポートしてもってくる方法は、Redmineのプロジェクト複数をまたがったチケットを収集するのにかなり手間がかかる(プロジェクトごとにチケット一覧を絞り込んでCSVエクスポートし、それをマージする)ほか、Excel側でメモなどを追記した後にチケットの状態(担当者、ステータスなど)が変化したときにそれをExcel側に反映するのが面倒です。

次に、REST APIExcel上から呼び出す方法を探しました。Excel VBAでMSXML2.DOMDocumentを使う方法は、Windows限定となってしまい、macOSでは動作しないのでこの方法は使えませんでした。REST APIの処理(応答のXMLをべたにVBAで解析する処理を記述)は、やりたくないなぁ。

ということで、PythonからRedmineExcelにアクセスして両者をつなぐ方法を使うことにしました。

調査の中で、RedmineExcelを結ぶ方法を一覧整理し紹介しているブログ記事を見つけましたので次にメモしておきます。この記事では、CSVエクスポート、REST APIだけでなく、Power QueryやAccessなどを使う方法(Redmineのバックエンドで動くRDBMSへのアクセスを含む)など幅広く紹介されています。

a1-style.net

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を使ってみました。

次のWikiPythonからExcelにアクセスするライブラリの一覧をメモしました。

Python-Excel - ソフトウェアエンジニアリング - Torutk

そのうち、コード例などを追記する予定です。