python自动化_Python办公自动化自动更新表格,告别繁琐

点击上方早起Python』关注并星标

第一时间接收最新Python干货!

84dd3963795942c9db54f62c5b3ffb92.png

系列导读

Python办公自动化|从Word到Excel Python办公自动化|从Excel到Word Python办公自动化|批量合并PDF,拿来就用 Python办公自动化|批量处理文件,一学就会 Python办公自动化|对比文件,光速完成 python自动化_Python办公自动化自动更新表格,告别繁琐_第1张图片 大家好,又到了Python办公自动化专题。 今天我们讲解的案例是如何使用Python自动更新Excel表格,简单来说就是 每天都会对Excel中多个sheet进行更新,需要操作完后可以用程序完成第一张sheet 汇总表的更新 ,大概就是这样

python自动化_Python办公自动化自动更新表格,告别繁琐_第2张图片

python自动化_Python办公自动化自动更新表格,告别繁琐_第3张图片

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

  • os、glob模块处理文件

  • Pandas处理多个表格

  • openpyxl调整Excel样式

创建多个随机数据

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

python自动化_Python办公自动化自动更新表格,告别繁琐_第4张图片

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

from openpyxl 

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

'皮卡丘', 

python自动化_Python办公自动化自动更新表格,告别繁琐_第5张图片

注意以上代码要单独运行先生成数据,再运行后续代码,OK现在数据就创建好了,然后正式进入我们的问题

合并多个sheet并写入汇总sheet

由于后面多个表的更新后需要按日期顺序在汇总表里呈现,因此有一个策略是利用openpyxl按顺序遍历各表然后写回汇总表。但注意,表格中存在边框居中等样式修改

python自动化_Python办公自动化自动更新表格,告别繁琐_第6张图片

这种情况下,openpyxl会识别样式,认为这些行是已经有数据的,故纯粹的sheet.append()方法是无法将数据写入这些所谓的空行,而会从没有样式的行开始写入

python自动化_Python办公自动化自动更新表格,告别繁琐_第7张图片

所以需要在各表写入的时候不断计算所在行,并利用sheet.iter_rows()定位。是不是有点麻烦?因此我们换个思路:利用pandas,其方便的地方在于无视表格样式

f'{GetDesktopPath()}/data/results.xls*')[

python自动化_Python办公自动化自动更新表格,告别繁琐_第8张图片

将生成的表写回汇总表即可,涉及的内容稍微比较复杂。由于直接使用dataframe.to_excel会覆盖原excel导致只有一张sheet,其他全部丢失,需要利用pd.ExcelWriter,具体见代码。删除原来的汇总表并写入新的汇总表。因为新写入的sheet会置于末尾,可以用list.insert(0, list.pop())将最后一个元素置于开头

'openpyxl')

python自动化_Python办公自动化自动更新表格,告别繁琐_第9张图片

这就完成了吗?没有。

pandas的优势“无视样式”也成为了它的缺陷:写入文件时没有样式信息,因此最后再用openpyxl对第一页的样式调整。

openpyxl调整样式

调整样式部分我们直接看代码,关键部分都给了详细注释

# 设置对齐、线性、边框、字体

python自动化_Python办公自动化自动更新表格,告别繁琐_第10张图片

到这里,我们就成功使用Python实现自动更新Excel表格,并且调整样式,可能看上去有点复杂,但核心就是使用Pandas处理并使用openpyxl调整样式,并且相比于在Excel中实现,一个更大的优势就是一旦代码写完以后可以在有相关需求的Excel中直接使用,从而解放了双手。拜拜,我们下个案例见~

注1:本文使用的数据与源码可在后台回复0523获取

注2:Python办公自动化系列旨在用Python解决工作中的繁琐操作,如果你有相关需求可在后台给我留言,我们会无偿为你解决并分享

2379d0fe7be2253ef789d47ee20a2165.png

本周依旧给常读常分享用户赠书,两本从零开始学Python数据分析包邮送

python自动化_Python办公自动化自动更新表格,告别繁琐_第11张图片

只要多看多分享就有机会获得,当然也可以点击下方小程序直接购买

往期精选(猛戳可查看)5726b20587404f9b9d1821fa292c0a1a.gif想做疫情分析却没有数据?看这篇就够了5726b20587404f9b9d1821fa292c0a1a.gif520|解锁Python表白新姿势5726b20587404f9b9d1821fa292c0a1a.gif备战520|Python花式表白的几种姿势5726b20587404f9b9d1821fa292c0a1a.gif刚接触Python,这么多IDE我该怎么选5726b20587404f9b9d1821fa292c0a1a.gif收藏| Scrapy框架各组件详细设置5726b20587404f9b9d1821fa292c0a1a.gifPython对比并提取两份Word/Excel文件python自动化_Python办公自动化自动更新表格,告别繁琐_第12张图片272610a7be55815f9b3535d2e213bfaf.png点在看,看更多fa20bf68dd177a4ac0f041104f0c48bf.gif

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