naoki86star

インターネットの片隅でなにかしら書いてみる

openpyxl

 sqliteでクエリーした結果をいくらか保存しておくようにxlsxに出力しておきたくなってきた。
 ずいぶん前にiron pythonでCOM経由で処理してくれるモジュールあったような記憶があるのですが、遅かったしWindowsのみで動いていた気がします。*1

 ubuntu(linux)で動かせるのがあった。openpyxl · PyPI

 pip3 install openpyxl で

Successfully installed et-xmlfile-1.0.1 jdcal-1.4.1 openpyxl-2.6.2

と来たので、openpyxl含めて3モジュール使われているらしい。参照がやたら多いpackageは、(もちろん必要だから参照するんだろうけど)やっぱり好きではない。

 exampleがシンプルかつ要点含んでいて自分用には速攻で使えるようになりました。、範囲指定のソートとかグラフオブジェクトみたいなのがどのくらい扱えるのか、自分には未知数。(190722update) マクロ込みxlsmファイルをテンプレートにして保存することは出来る模様。

wb = load_workbook(filename='template.xlsm', keep_vba=True)
..
wb.save('myoutput.xlsm')

 historyみると2014には存在していたのですね。。。

2019/7/16追記

XlsxWriterてのがあったのも思い出しました。なんか別の作業でこれを使ってスクリプトを書いたことあったみたいです。まったく覚えてなかったのですが、古いディレクトリみていたらそんなことあったと思い出しました。

*1:COM使うから当たり前か