用Excel'日期'格式写xlwt日期

时间:2013-06-12 15:40:09

标签: python xlwt

我正在使用xlwt制作.xls电子表格,我需要创建日期单元格。

我已经写出了数字,并设置了数字格式字符串,使它们看起来像日期,但是关键的是它们实际上并没有写成日期 - 如果你在Excel中格式化单元格,它就是一个“自定义”类别而不是“约会”,这很重要。

我可以让xlwt实际上写“日期”单元吗?

2 个答案:

答案 0 :(得分:17)

该号码将显示在Excel"日期"如果您使用与Excel的内置格式字符串之一(例如dd/mm/yyy)对应的格式字符串,则为category。例如:

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中使用" Date"格式化一个数字。您想要的格式然后,在同一个对话框中,单击"自定义"看看什么格式字符串与"日期"格式。然后在你的程序中使用它。

:Excel XLS格式中没有任何本机日期类型。所有日期都存储为数字和格式。除了格式字符串之外,没有什么可以区分它们与格式的任何其他数字。这是使解析Excel文件变得困难的一个原因,因为您必须应用启发式方法来确定单元格是否包含日期。

答案 1 :(得分: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')