pyExceleratorの日付解釈
pyExceleratorは、PythonでWin32.COMを使わずにExcelを読み書きするモジュールです。Excelファイル作成のサンプルコードは豊富なのですが、読み込みサンプルは添付されていません。読み込みは、とにかく文字か数字が読めればいいということ?たしかに、簡単だし、他に用途もなさそうだけど。
import pyExcelerator book = pyExcelerator.parse_xls('hoge.xls') for sheet_name, sheet_data in book for pos, data in sheet_data.items(): print "%d,%d : %s" % (pos[0], pos[1], data)
ただこれ、文字列と数値はいいんだけど、日付もExcelの内部データそのまま数値として読み取ってしまいます。もし、読み取ったセルの数値を日付として解釈したければ、こんな感じで処理するとうまくいきます。
from datetime import datetime, timedelta BASEDAY = datetime(1900,1,1) - timedelta(2) def excel2native(value): return BASEDAY+timedelta(value) # data = 日付解釈したいExcelのセルの数値 print excel2native(data) print excel2native(data).date() #日付のみ print excel2native(data).time() #時刻のみ
なんで基準が1900年1月1日の2日前なのかはわかりませんが、うまくいってるのでまあいいや。