質問

あるExcelスプレッドシートから別のスプレッドシートまでの日付を作成しようとしています。現在、私はこのような私が望むものではないExcelで表現を取得しています: "40299.2501157407"

コンソールに正常に印刷する日付を取得できますが、Excelスプレッドシートに正しく書き込むことができないようです。データはExcelの日付タイプでなければなりません。テキストバージョンはありません。

これが日付を読み取る行です。

date_ccr = xldate_as_tuple(sheet_ccr.cell(row_ccr_index, 9).value, book_ccr.datemode)

これが日付を書く行です:

row.set_cell_date(11, datetime(*date_ccr))

いくつかの比較以外のこれらの2行の間にDate_ccrには何も行われていません。

何か案は?

役に立ちましたか?

解決

フローティングポイント番号をスプレッドシートに直接書き込み、セルの数値形式を設定できます。を使用して形式を設定します num_format_strXFStyle 値を書くときのオブジェクト。

https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/doc/xlwt.html#xlwt.worksheet.write-method

次の例には、日付01-05-2010を記述します。 (06:00:10の時間も含まれますが、これはこの例で選択された形式に隠されています。)

import xlwt

# d can also be a datetime object
d = 40299.2501157407

wb = xlwt.Workbook()
sheet = wb.add_sheet('new')

style = xlwt.XFStyle()
style.num_format_str = 'DD-MM-YYYY'

sheet.write(5, 5, d, style)
wb.save('test_new.xls')

XLWTソースコードの例フォルダーには、番号形式(num_formats.py)の例があります。私のWindowsマシンで:c: python26 lib site-packages xlwt の例

Excel Storeの日付について読むことができます(このページの3番目のセクション): https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top