质量、速度、廉价,选择其中两个
在书写这些代码之前你应该安装一个库 xlsxwriter
Xlsx是python用来构造xlsx文件的模块,可以向excel2007+中写text,numbers,formulas 公式以及hyperlinks超链接
可以完成xlsx文件的自动化构造,包括:合并单元格,制作excel图表等功能
workbook = xlsxwriter.Workbook('test.xlsx')
使用这段代码创建一个指定路径名称的xlsx文件
worksheet = workbook.add_worksheet()
向其中添加一张表
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
定义表内显示的数据,我这里没有写表头
for item, cost in (expenses):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
row += 1
然后循环写入数据,write第一个参数是所在行,第二个参数是所在列,第三个参数是要写入的数据
最后close()方法关闭文件,附一份完整代码
import xlsxwriter
# 创建新表格
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
# 表格的内容
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
# 想象表格的布局,坐标 0,0 对应 A,1
row = 0
col = 0
# 填充每个单元格
for item, cost in (expenses):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
row += 1
workbook.close()
如果你要写少量的数据你可以像上面这样写,但是如果你要写一个很多列的数据这些写就太Low了,xlsxwriter给我们提供了一个方法交write_row,调用该方法可以一次写一行数据,不过该方法的定位方式和write不一样,它的定位方式和你打开excel时点击一个小格的定位方式相同,最左上角的是A1,旁边的叫B1,下面的叫A2,我们来写一个例子,顺便给加上各列标题
import xlsxwriter
def save_excel(fin_result, tag_name, file_name):
book = xlsxwriter.Workbook(r'%s.xlsx' % file_name)
tmp = book.add_worksheet()
row_num = len(fin_result)
for i in range(1, row_num+2):
if i == 1:
tag_pos = 'A%s' % i
tmp.write_row(tag_pos, tag_name)
else:
con_pos = 'A%s' % i
content = fin_result[i-2] # -2是因为当i=2时下标应为0
tmp.write_row(con_pos, content)
book.close()
# 表格的内容
title_list=["第一列","第二列","第三列"]
text_list=[
["111","222","333"],
["444","555","666"],
["777","888","999"]
]
save_excel(text_list,title_list,"test")