xlsxWriter有关将日期导出为日期的问题

问题描述 投票:1回答:2

我有一个列表,其中包含以下格式的日期:11/22/2019。当我将此列表导出到Excel时,Excel工作表会将这些日期识别为“常规”,因此我无法对这些日期进行排序。有没有一种方法可以使这些日期在不使用VBA的情况下被Excel识别为日期?

import xlsxwriter
workbook = xlsxwriter.Workbook('C:/test.xlsx')
worksheet = workbook.add_worksheet("Table 1")

dates_array = ["02/12/1999", "04/12/2009", "11/02/2019"]
# Export dates_array to Excel file
row = 0
column = 0
for item in dates_array:
    worksheet.write(row, column, item)
    row += 1
workbook.close() 
python xlsxwriter
2个回答
1
投票
import xlsxwriter workbook = xlsxwriter.Workbook('C:/test.xlsx') worksheet = workbook.add_worksheet("Table 1") dates_array = [" 02/30/1999", "04/12/2009", "11/02/2019"] # Export dates_array to Excel file row = 0 column = 0 for item in dates_array: worksheet.write(row, column, item) format = workbook.add_format({'num_format': 'm/d/yyyy'}) worksheet.write(row,column, item, format) row += 1 workbook.close()

0
投票
XlsxWriter可以将Python日期时间对象转换为Excel日期,但不会自动将类似日期的字符串转换为Excel日期。 XlsxWriter文档的Working with Dates and Times部分对此进行了详细说明。

这里是如何转换它们的示例:

from datetime import datetime import xlsxwriter workbook = xlsxwriter.Workbook('test.xlsx') worksheet = workbook.add_worksheet("Table 1") dates_array = ["02/12/1999", "04/12/2009", "11/02/2019"] date_format = workbook.add_format({'num_format': 'mm/dd/yyyy'}) # Set the column width for clarity. worksheet.set_column(0, 0, 20) row = 0 column = 0 for item in dates_array: date_time = datetime.strptime(item, '%m/%d/%Y') worksheet.write(row, column, date_time, date_format) row += 1 workbook.close()

如果要设置列格式,则可以省略像这样的单元格格式:

worksheet.set_column(0, 0, 20, date_format)

row = 0
column = 0
for item in dates_array:

    date_time = datetime.strptime(item, '%m/%d/%Y')

    worksheet.write(row, column, date_time)
    row += 1

workbook.close()

最后,如果您还想将垂直对齐方式添加到列格式,则可以将其添加到日期格式中,如下所示:

date_format = workbook.add_format({'num_format': 'mm/dd/yyyy', 
                                   'align': 'vcenter'})

© www.soinside.com 2019 - 2024. All rights reserved.