2

一部の列に日付があり、他の列がないデータベース検索の結果があります。書くのに助けが必要です

data = [['556644', 'Mr', 'So', 'And', 'So', Decimal('0.0000'), datetime.datetime(2012, 2, 25, 0, 0), '', False, datetime.datetime(2013, 6, 30, 0, 0)],...]

Excelスプレッドシートに

easyxf(num_format_str='DD/MM/YYYY')

日時列にのみ適用されます。私はPythonを初めて使用し、これにかなりの数日間頭を悩ませてきました。ありがとう!

4

3 に答える 3

1

これは pyodbc を使用して SQL サーバーからインポートされているため、cursor.fetchall() は次のようになります。

data = [list(n) for n in cursor.fetchall()]
for row_index, row_contents in enumerate(data):
    for column_index, cell_value in enumerate(row_contents):
        xf=None
        if isinstance(data[row_index][column_index], datetime.date):
            xf = easyxf(num_format_str='DD/MM/YYYY') # sets date format in Excel
        if xf:
            sheet1.write(row_index+1, column_index, cell_value, xf)
        else:
            sheet1.write(row_index+1, column_index, cell_value)

終わり!:)

于 2012-06-25T23:36:01.553 に答える
1

自己回答を単純化した後:

date_xf = easyxf(num_format_str='DD/MM/YYYY') # sets date format in Excel
data = [list(n) for n in cursor.fetchall()]
for row_index, row_contents in enumerate(data):
    for column_index, cell_value in enumerate(row_contents):
        if isinstance(cell_value, datetime.date):
            sheet1.write(row_index+1, column_index, cell_value, date_xf)
        else:
            sheet1.write(row_index+1, column_index, cell_value)
于 2012-07-06T17:08:28.980 に答える