作成しているデータ変更スクリプトの日付をExcelのシリアル番号に変換する必要があります。OpenOffice Calcワークブックの日付で遊んでみると、「1899年1月1日00:00:00」が数字のゼロにマッピングされていると推測できました。
PythonのdatetimeオブジェクトからExcelのシリアル番号に変換する次の関数を作成しました。
def excel_date(date1):
temp=dt.datetime.strptime('18990101', '%Y%m%d')
delta=date1-temp
total_seconds = delta.days * 86400 + delta.seconds
return total_seconds
ただし、いくつかのサンプル日付を試してみると、Excel(OpenOffice Calc)で日付を数値としてフォーマットしたときに得られる数値とは異なります。たとえば、「2009-03-20」をテストすると、Pythonで3478032000が得られますが、Excelではシリアル番号が39892としてレンダリングされます。
上記の式の何が問題になっていますか?
*注:私はPython 2.6.3を使用しているため、datetime.total_seconds()にアクセスできません。