使用xlwt编写和格式化datetime.date对象

时间:2011-06-16 16:15:23

标签: python xlwt

我在使用这段代码时遇到了一些麻烦

#data_list = some data
wb = xlwt.Workbook()
s = wb.add_sheet("Test Sheet")
for c, data in enumerate(data_list):
        xf=None
        if isinstance(data, datetime.time):
                xf = xlwt.easyxf(num_format_str='HH:MM:SS') #works
        elif isinstance(data, datetime.date):
                xf = xlwt.easyxf(num_format_str='MM/DD/YYYY') #doesn't work
        if xf:
                sheet.write(r+1,c,data, xf)
        else:
                sheet.write(r+1,c,data)

在输出中,日期最初都显示为“#####”。通过与每列中的单元格进行交互,我可以很好地格式化它们,但这很耗时。我尝试使用num_format_str一点点,但到目前为止没有运气。

1 个答案:

答案 0 :(得分:5)

考虑到这一点,如果您的问题 列太窄,您可以通过在脚本中明确设置列宽来修复它。

for c, data in enumerate(data_list):
    xf=None
    sheet.col(c).width = len(str(data))*256 
    if isinstance(data, datetime.time):

xlwt中的宽度以默认字体中0字符宽度的1/256为单位设置。