我有一个列表,其中包含以下格式的日期: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()
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()
这里是如何转换它们的示例:
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'})