Python:把每天重复的Excel活儿写个脚本一次跑完
- 2026-11-07 12:38:44
我是老姚,常德一个普通上班族。以前每天早上一来,就得对着电脑把那堆从不同部门汇总来的报表手动合并、调整格式,有时候为了找个单元格颜色对不对,眼睛都要看花。后来我试着用 Python 写个小脚本,把那些重复动作自动化了,虽然刚开始折腾得头皮发麻,但一旦跑通,真的省了一半时间。今天就想聊聊我用 openpyxl 处理 Excel 时踩过的两个最大的坑,都是真金白银换来的教训,希望能帮你少掉几根头发。 最近在用这个工具处理工作时,上手门槛比我想象的低很多。
第一个坑:格式错乱,看着没问题,打开全是乱码
很多人觉得 Python 处理 Excel 就是读个数据,其实最大的麻烦在于“格式”。我之前用 pandas 直接读写,觉得挺方便,结果发出去的文件,字体变了、列宽乱了,有些单元格的数字被强制转成了文本,对账的时候根本对不上。
后来我换成了 openpyxl,它更贴近 Excel 原生结构。但我还是踩了个坑:我在脚本里设置列宽和合并单元格时,没有考虑源文件里可能存在的隐藏行或特殊样式。有一次,我写了一段代码批量调整表头样式,结果运行完后,原本正常的边框线消失了,有些单元格还出现了奇怪的空白行。排查了很久才发现,是我在循环中覆盖了原有的样式对象,而没有先复制一份再修改。
所以我的建议是,如果你要批量处理格式,一定要先备份原文件,并且在脚本里先用 copy() 方法复制样式,再在新样式上操作。别想着直接覆盖,Excel 的格式体系很脆弱,动一处可能牵连一片。
第二个坑:编码问题,中文文件名或内容直接报错
第二个坑比格式更隐蔽,也更容易让人崩溃。那就是编码。我以前在处理一些从其他系统导出的 Excel 时,文件名或者单元格内容里有中文,直接用默认的 utf-8 读取,结果要么报 UnicodeDecodeError,要么读出来的中文是一堆乱码问号。
特别是当你的脚本需要遍历文件夹,处理几十个不同命名的 Excel 文件时,Windows 系统和 Python 之间的编码差异就能把你搞死。我后来摸索出一个比较稳的办法:在读取文件前,先打印出文件名的原始字节,用 chardet 库检测一下编码,如果是 gbk 就显式指定 encoding='gbk'。虽然这多了一步操作,但能避免大部分因编码不一致导致的崩溃。
另外,如果你要写回文件,尤其是内容包含大量中文时,记得保存为 .xlsx 格式,这是基于 XML 的,对中文支持更好;而旧的 .xls 格式在 Python 某些库中处理中文时更容易出问题。
总结
用 Python 自动化 Excel 工作,确实能解放双手,但前提是你要尊重 Excel 的复杂性。格式错乱和编码问题,是新手最容易栽跟头的地方。别怕麻烦,先备份、再调试小样本,等脚本跑通了再批量执行。我现在每天早上的半小时,早就被这个脚本省下来了,剩下的时间可以用来研究点别的副业门道,或者单纯多睡会儿。生活嘛,能偷懒的地方就偷懒,把精力留给真正重要的事。
Python #副业 #AI工具 #Q领 #网盘拉新
Q领 · 用 AI 把副业跑通
本文由公众号 Q领 原创出品。关注我们,每周拆解一个能落地的 AI 副业玩法,附可直接套用的提示词与工具清单。
© Q领 · 转载请注明出处