Hi~大家好!我是锋小刀!
在工作中,我们经常同word、excel、ppt打交道,而excel用的应该是最多的。不知道大家有没有一填就是几百上千份
表格的经历,那种感觉就像个机器人一样做着重复的事情,让人崩溃。一个表填着容易,要是几百上千份表格就很难受了,所以,今天教大家如何用python批量填充数据。
在上一期python办公自动化中,我们讲解了python如何按指定名称快速创建工作表:为了拒绝做重复的事情,我用python写了个自动化脚本,让它按名称自动创建工作表
而今天我们来讲解一个比较简单的案例,使用openpyxl
操作excel批量填充数据,并生成新的excel文件以及新的工作表,拒绝做重复的事情。
数据源:今天需要用到的数据是上一期爬虫案例的数据源:手把手教你用python爬取猫眼TOP100电影信息
需要把数据填充到以下工作表的相应表格,然后以对应的电影名称为名生成多个excel工作簿,并以对应的电影名称为重命名工作表:
任务目标:
openpyxl
是一个第三方模块,需要自行在终端中使用pip命令安装,一些基本操作可以自行上网查找,网上有很详细的介绍:
pip install openpyxl
导入模块:
import pandas as pd
import openpyxl
用openpyxl读取excel模板:
wb = openpyxl.load_workbook(r"D:\untitled1\办公自动化\EXCEL[批量填充数据]\书单.xlsx")
ws = wb['Sheet1']
用pandas读取数据源:
data = pd.read_csv(r"D:\untitled1\办公自动化\EXCEL[批量填充数据]\猫眼100.csv")
查看下数据:
这里直接用for循环一个一个的取出数据,然后ws.title
修改工作表名称并把数据填充进相应的表格,最后以电影名称为名,保存为多个excel工作簿:
# 遍历数据源一个一个取出数据
for d, i, r, e in zip(data['电影名称'], data['主演'], data['评分'], data['上映时间']):
# 修改工作表名称
ws.title = d
# 在对应单元格填充相应数据
ws['B1'].value = d
ws['B2'].value = i
ws['D1'].value = r
ws['B3'].value = e
# 以电影名称为名字,保存为单个工作簿
wb.save(r"D:\untitled1\办公自动化\EXCEL[批量填充数据]\信息\{}.xlsx".format(d))
如果是保存为一份excel工作簿,只需要加一句代码,再修改一下保存名称即可:
for d, i, r, e in zip(data['电影名称'], data['主演'], data['评分'], data['上映时间']):
sheet = wb.copy_worksheet(ws) # 复制原有工作表
sheet.title = d # 重命名工作表
sheet['B1'].value = d
sheet['B2'].value = i
sheet['D1'].value = r
sheet['B3'].value = e
wb.save(r"D:\untitled1\办公自动化\EXCEL[批量填充数据]\信息\猫眼电影信息.xlsx")
运行效果:
来看下python处理表格速度:
我们今天使用openpyxl
操作excel批量填充数据,可以看到,只要短短十几行代码即可快速搞定上百份表格,不用一个一个手动的填了。
本文分享自 Python与Excel之交 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!