xlwt を使用して .xls スプレッドシートを作成していますが、日付セルを作成する必要があります。
数値を書き出し、数値形式の文字列を設定して日付のように見せましたが、重要なことに、実際には日付として書き込まれていません。Excel でセルの書式を設定すると、それは "カスタム" カテゴリではなく、 「日付」のもの、そしてこれは重要です。
xlwt に実際に「日付」セルを書き込むことはできますか?
dd/mm/yyy
. _ 例えば:
import xlwt
import datetime
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet1')
date_format = xlwt.XFStyle()
date_format.num_format_str = 'dd/mm/yyyy'
worksheet.write(0, 0, datetime.datetime.now(), date_format)
workbook.save('date_format.xls')
のフォーマット文字列を使用するようにこの例を変更するとd/mm/yyy
、数値は「カスタム」カテゴリに表示されます。
注: 上記のコードは、私が試したバージョンの Excel で機能しますが、地域によって異なる可能性があります。最善の方法は、必要な「日付」形式で Excel の数値をフォーマットし、同じダイアログで「カスタム」をクリックして、「日付」形式に関連付けられている形式文字列を確認することです。次に、それをプログラムで使用します。
また: Excel XLS 形式にはネイティブの日付型はありません。すべての日付は、数値とフォーマットとして保存されます。フォーマット文字列を除いて、フォーマットを持つ他の数値と区別するものは何もありません。これは、セルに日付が含まれているかどうかを判断するためにヒューリスティックを適用する必要があるため、Excel ファイルの解析を困難にするものの 1 つです。
http://www.youlikeprogramming.com/2011/04/examples-generating-excel-documents-using-pythons-xlwt/から
セルに日付を入力する
import xlwt
import datetime
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
style = xlwt.XFStyle()
style.num_format_str = 'D-MMM-YY' # Other options: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0
worksheet.write(0, 0, datetime.datetime.now(), style)
workbook.save('Excel_Workbook.xls')