python办公自动化——批量向excel填充数据

作者: 锋小刀
微信搜索【职场办公杂技】关注我的公众号查看更多内容

在工作中,我们经常同word、excel、ppt打交道,而excel用的应该是最多的。不知道大家有没有一填就是几百上千份表格的经历,那种感觉就像个机器人一样做着重复的事情,让人崩溃。

在上一期python办公自动化中,我们讲解了python如何按指定名称快速创建工作表:为了拒绝做重复的事情,我用python写了个自动化脚本,让它按名称自动创建工作表

而今天我们来讲解一个比较简单的案例,使用openpyxl操作excel批量填充数据,并生成新的excel文件以及新的工作表,拒绝做重复的事情。

数据源:今天需要用到的数据是上一期爬虫案例的数据源:手把手教你用python爬取猫眼TOP100电影信息
python办公自动化——批量向excel填充数据_第1张图片
需要把数据填充到以下工作表的相应表格,然后以对应的电影名称为名生成多个excel工作簿,并以对应的电影名称为重命名工作表:
python办公自动化——批量向excel填充数据_第2张图片
任务目标:

  • 填充对应数据进表格,并重命名对应的工作表名,最后以电影名称为名保存为多个工作簿。

  • 填充对应数据进表格,以电影名称为名创建多个工作表,最后保存为单个工作簿。

代码实现

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")

查看下数据:
python办公自动化——批量向excel填充数据_第3张图片
这里直接用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工作簿,只需要加一句代码,再修改一下保存名称即可:

sheet = wb.copy_worksheet(ws)   # 复制原有工作表
sheet.title = d  # 重命名工作表

运行效果:
python办公自动化——批量向excel填充数据_第4张图片
我们今天使用openpyxl操作excel批量填充数据,可以看到,只要短短十几行代码即可快速搞定上百份表格,不用一个一个手动的填了。

本文图片以及文本仅供学习、交流使用,不做商业用途,如有问题请及时联系我们以作处理。

你可能感兴趣的:(python自动化办公,python)