我遇到了xlsxwriter(也有openpyxl)和excel的问题。在我打开工作簿,单击单元格,然后按Enter之前,不使用列格式。列具有正确的格式,但在出现刚刚列出的步骤之前不会显示此格式。我确保我的Excel具有自动计算功能。 此外,使用相同的代码行,某些列格式良好,其他列则没有。
wb = xlsxwriter.Workbook(filename)
ws = wb.add_worksheet()
numeric = wb.add_format()
numeric.set_num_format(0x02) # also tried with 0x44 accounting, same results
... (get the request csv object)
for item in (request):
col=0
row +=1
for field in fields:
if field:
ws.write(row, col,item[field])
col += 1
if 'inventory' in item:
if len(item['inventory']) > 0:
ws.write(row, col,item['inventory'][0]['count'],numeric)
ws.write(row, col+1,item['inventory'][0]['reorder_point'],numeric)
ws.write(row, col+2,item['inventory'][0]['restock_level'],numeric)
ws.set_column('Q2:Q'+str(row+1), 10, numeric)
ws.set_column('R2:R'+str(row+1), 10, numeric)
ws.set_column('T2:T'+str(row+1), 10, numeric)
ws.set_column('U2:U'+str(row+1), 10, numeric)
ws.set_column('V2:V'+str(row+1), 10, numeric)
ws.set_column('AB2:AB'+str(row+1), 10, numeric)
ws.set_column('AC2:AC'+str(row+1), 10, numeric)
ws.set_column('AD2:AD'+str(row+1), 10, numeric)
wb.close()
在此截断的代码中,列Q,U,V,AB,AC和AD无法正确显示,而列R和T则无法正确显示。由于我对xlsxwriter和openpyxl都有同样的问题,excel有问题吗?我究竟做错了什么? 最后一条线索:如果我在excel中更改列格式,除了重新计算(双重cliqued)列的单元格外,它什么都不做。 谢谢你的帮助。
答案 0 :(得分:1)
XlsxWriter set_column()
方法的语法是:
set_column(first_col, last_col, width, cell_format, options)
您可以使用Excel的first_col, last_col
样式表示法代替数字零索引A:D
:
worksheet.set_column('E:E', 20)
但是,在您的示例中,您使用的是2D范围:
ws.set_column('Q2:Q5', 10, numeric)
这不是有效的。