У меня возникают некоторые проблемы с этим фрагментом кода
#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)
В выводе даты отображаются как "#####". Я могу получить excel, чтобы отформатировать их правильно, взаимодействуя с ячейкой в каждом столбце, но это требует много времени. Я пробовал играть с num_format_str немного, но пока не повезло.
Просто подумайте об этом, если ваша проблема , что столбцы слишком узкие, вы можете исправить ее, указав ширину столбца явно в script.
for c, data in enumerate(data_list):
xf=None
sheet.col(c).width = len(str(data))*256
if isinstance(data, datetime.time):
Ширина в xlwt задается в единицах 1/256 ширины символа 0
в шрифте по умолчанию.