用Excel'date'格式编写xlwt日期
问题内容:
我正在使用xlwt制作.xls电子表格,并且需要创建日期单元格。
我已经写出数字,并设置数字格式字符串以使它们看起来像日期,但关键是它们实际上并没有被写为日期-
如果您在Excel中设置格式单元格,则它是“自定义”类别,而不是“日期”之一,这很重要。
我可以让xlwt实际写“日期”单元格吗?
问题答案:
如果您使用与Excel的内置格式字符串之一相对应的格式字符串,则该数字将显示在Excel“日期”类别中dd/mm/yyy
。例如:
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中以所需的“日期”格式格式化数字,然后在同一对话框中单击“自定义”以查看与“日期”格式关联的格式字符串。然后在程序中使用它。
另外 :Excel
XLS格式没有任何本地日期类型。所有日期都存储为数字加格式。除格式字符串外,没有什么可将它们与其他任何格式的数字区分开。这是使解析Excel文件变得很麻烦的事情之一,因为您必须应用启发式方法来确定单元格是否包含日期。