我正在使用xlwt制作.xls电子表格,我需要创建日期单元格.
我已经编写了数字,并设置数字格式字符串使它们看起来像日期,但关键的是它们实际上并没有写为日期 - 如果你在Excel中格式化单元格,它是一个"自定义"类别而不是"约会"一,这很重要.
我可以让xlwt实际上写"日期"单元格吗?
jmc*_*ara 18
如果您使用与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')
Run Code Online (Sandbox Code Playgroud)
如果您修改此示例以使用格式字符串,d/mm/yyy则该数字将显示在"自定义"类别中.
注意:上面的代码适用于我尝试过的Excel版本,但这可能受区域差异的影响.最好的办法是在Excel中使用所需的"日期"格式格式化数字,然后在同一对话框中单击"自定义"以查看与"日期"格式关联的格式字符串.然后在你的程序中使用它.
另外:Excel XLS格式中没有任何本机日期类型.所有日期都存储为数字和格式.除了格式字符串之外,没有什么可以区分它们与格式的任何其他数字.这是使解析Excel文件变得困难的一个原因,因为您必须应用启发式方法来确定单元格是否包含日期.