2013年3月26日火曜日

python で xlsx を読む ( 仕方なく )

出稼ぎ先で、(更にその向こうとのやりとりで)xlsxのスケジュールをやりとりしてるのですが、知らない間に、細かいリリース時期がズレてることがままあり。いやもちろん主任は知ってるんですよ。ただし細かい話は伝えず、まあ恐らく忘れてるだろうし。

そもそも光学バージョン管理(肉眼で修正管理)は無理だっつってんだろゴルア

とりあえずテキスト化すれば、後はmercurialなりsvnなりに突っ込んで、後で考えましょうか。

https://github.com/staale/python-xlsx

ちょっと古い( 7 months ago )ようですが、概ね通りますね。
手持ちのネタ(肝心のスケジュール)を通してみると、どうもXLDateAmbiguousで怒られます。
例外の位置を辿ってみると、"9"としか書かれてないカラムを、日付としてparseしようとしてるらしい。縦軸に日付を並べるという、面妖なフォーマットのシートではありますが。
良く判らないので、そのままシレっと9を返してみました。(まんまint値を、って意味)
ついでに、隠しシートもそのままparseしちゃうので、「隠れてますフラグ」も取れるようにはしました。zip/xmlのパースは楽でイイですなあ。現状プログラムで使ってないだけで、domパーサには引っかかってました。

https://github.com/kamawanu/python-xlsx/commit/dfabc443b8bd3cf706a4c877875a1ae3d3b74d40

それでも、消し線だの、青文字だの、文字属性で運用している部分がまだ残ってるので(光学バージョン管理は辞めろと)その辺りもどうにかしたいところですが。