我在使用这段代码时遇到了一些麻烦
#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一点点,但到目前为止没有运气。
答案 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为单位设置。