教你用Python写excel

质量、速度、廉价,选择其中两个

在书写这些代码之前你应该安装一个库 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")

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幽蓝丶流月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值