首页 > 解决方案 > 如何使用 xlwt 将 python 列表导出到 excel 文件中?

问题描述

在这里,我试图将 python 列表导出到 excel 文件,但它无法正常工作。

该列表将是动态的。

response = HttpResponse(content_type='application/ms-excel')
response['Content-Disposition'] = 'attachment; filename="excle_file.xls"'

wb = xlwt.Workbook(encoding='utf-8')
ws = wb.add_sheet('datas', cell_overwrite_ok=True)

row_num = 0

font_style = xlwt.XFStyle()
font_style.font.bold = True

columns = ['col1', 'col2', 'col3', 'col4', 'col5']

for col_num in range(len(columns)):
    ws.write(row_num, col_num, columns[col_num], font_style)

font_style = xlwt.XFStyle()
rows = [20, Decimal('50000.00'), Decimal('10.00'), Decimal('40000.00'), Decimal('90000.00'), 21, Decimal('31000.00'), Decimal('2000.00'), Decimal('41000.00'), Decimal('74000.00')]

for i,e in enumerate(rows):
   ws.write(i,1, e)

wb.save(response)
return response

我想要这样的回应。

col1  col2   col3  col4  col5
20    50000   10   40000  90000
21    31000   2000 41000  74000

当前响应

col1  col2   col3  col4  col5
      20    
      50000  
      10   
      40000  
      90000
      21    
      31000  
      ....

我还想根据文本增加列的大小?它将如何完成?

标签: pythonlistxlwt

解决方案


根据文档https://xlwt.readthedocs.io/en/latest/api.html#xlwt.Worksheet.Worksheet ws.write 需要(行、列、值)。比较改变后得到的结果:

ws.write(i,1, e)

至:

print(i,1, e)

然后如果你输入它会如何变化:

print(int(i/5),int(i)%5, e)

推荐阅读