Python 办公自动化|自动更新表格,告别繁琐

大家好,又到了 Python 办公自动化专题。

今天我们讲解的案例是如何使用 Python 自动更新 Excel 表格,简单来说就是 每天都会对 Excel 中多个 sheet 进行更新,需要操作完后可以用程序完成第一张 sheet 汇总表的更新 ,大概就是这样👇

img

img

当然实现这一功能可以使用 VBA 或者 Excel 中的其他操作,但是查了相关操作略显复杂,现在我们使用 Python 来完成,主要涉及以下操作:

  • os、glob模块处理文件

  • Pandas处理多个表格

  • openpyxl调整 Excel 样式

创建多个随机数据

为了尽可能模拟读者的生产环境多了这一步。首先我们先用 Python 来创建一些随机数据,数据已经充分则可以跳到下一步骤

img

我们需要把这个 excel 文件命名好放在桌面的 data 文件夹中

from openpyxl import load_workbook
import os
import glob
import random

def GetDesktopPath():
    return os.path.join(os.path.expanduser("~"), 'Desktop')

# 调用glob可以利用通配符获取指定命名格式的文件
path = glob.glob(f'{GetDesktopPath()}/data/*.xls*')[0]
workbook = load_workbook(filename=path)
sheet_init = workbook.active

接着是创建一些供随机的内容,可以随意写,我们还是皮卡丘化

name_lst = ['皮卡丘', '小火龙', '杰尼龟', '妙蛙种子', '风速狗', '小拳石', '飞天螳螂']
place_lst = [chr(i).upper() for i in range(97, 123)] 
# 我忘记大写字母的码了哈哈哈 这样变着法换大写字母
activity_lst = ['椭圆机', '篮球', '足球', '羽毛球', '跳绳']
source_lst = ['朋友介绍', '微信聊天', '网页弹窗', '其他']

for i in range(30):
    # 不断去拷贝第一页并重命名
    sheet = workbook.copy_worksheet(sheet_init)
    sheet.title = f'{i+1}日'
    for j in range(random.randint(10, 30)):
        # 从第三行开始行遍历
        for row in sheet.iter_rows(min_row=3+j, max_row=3+j):
            info = [f'{j+1}', f'{i+1}日', f'{random.choice(name_lst)}', f'{random.choice(place_lst)}馆',
                    f'{r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值