16

xlwt を使用して .xls スプレッドシートを作成していますが、日付セルを作成する必要があります。

数値を書き出し、数値形式の文字列を設定して日付のように見せましたが、重要なことに、実際には日付として書き込まれていません。Excel でセルの書式を設定すると、それは "カスタム" カテゴリではなく、 「日付」のもの、そしてこれは重要です。

xlwt に実際に「日付」セルを書き込むことはできますか?

4

2 に答える 2

23

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 つです。

于 2013-06-13T11:15:46.020 に答える
3

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')

于 2013-06-12T15:55:22.570 に答える