Trac のカスタムクエリやレポートを Excel HTML 形式でダウンロードできるようにするプラグイン

ついこの間 ExcelReportPlugin を使いたくなりインストールを試みようとしたのですが、「TracReportPluginPatch を当てる必要がある」「pyExcelerator が必要」ということに気づきました(いまさら)。
ここでパッチを当てるのはまあ仕方ないか…と思ったのですが、pyExcelerator は python 2.4+ を要求しています。インストール先の環境は python 2.3 なのです。これではプラグインを使うことが出来ません。
そこで別途ライブラリを必要とせず python 2.3 環境でも Excel 出力できるプラグインを書きました。と言っても本物の Excel ファイルを出力できるわけではなく Microsoft Office HTML という形式で出力します。この形式なら Trac + Genshi だけで処理できます。
どんな形式なのかは How to format an Excel workbook while streaming MIME content, Microsoft Office HTML and XML Reference あたりを見てください。
github に置いてみました。実験コードだし github が使ってみたかったので。
http://github.com/jun66j5/tracmsofficexmlplugin
いまのところ、以下のような感じになっています。

  • Trac 0.11.5 英語版でしか確認していません
  • カスタムクエリを Excel HTML でダウンロード
  • カスタムクエリを Excel XML でダウンロード (列の幅などまったく調整していません)
  • レポートを Excel HTML でダウンロード (ReportPluginPatch なしで)
  • python 2.3 で動きます (HTML/XML を出力しているだけだから)
  • もちろん Excel で開けます

プラグインを有効にするには trac.ini に以下の記述を足してください

[components]
tracmsofficexml.* = enabled

有効にすると以下のような感じでリンクが増えるようになっています。

カスタムクエリ
レポート

レポートを Excel HTML でダウンロードしたところ。

興味があれば遊んでみてください。
p.s. 実はこのプラグインの大部分を書いた後に ExcelReportPluginをpython2.3で利用するhack | Ryuzee.com の記事を見つけました。「python 2.3 だから ExcelReportPlugin 入れられない」って人はこちらを試してみてはどうでしょうか。