分享最近学习python处理excel中的图片一段代码,我是做无线通信工作的(无线网络优化,俗称“网优”),我以实际工作中用到的案例进行分享。写的不好请看官多多担待,作为初学者我会继续努力。
工作中我们会经常遇到这样的问题:一个excel报告文件中有很多图片,每张图片的顶部有些标记的信息不想保留(经纬度等信息),要是人工处理就太费时费力了(截图再重新进行粘贴,每个excel中有20多张图片要处理,这样的excel有上百个),能不能用python处理呢?答案是必须的!
思路分享:
- 首先将excel的后缀名“.xlsx”修改为“.zip”格式。如下:

- 解压文件,在解压后的文件夹下的xlmedia下就是excel文件中的所有图片,格式为“.jpeg”。对每张图片进行循环(剪裁)。在完成剪裁后按照原来的图片名称进行命名,再将“.zip”后缀改为“.xlsx后缀即可”。打开后就是我们要的最终剪裁好图片的excel报告文件。如下:

- 我用的是pycharm2019.3.1( python3.7.1)进行编写代码,用到的模块有:
zipfile(用于压缩解压缩文件);
datetime(计时程序运行时间);
shutil(删除文件夹,主要是删除压缩的原文件夹);
os (系统路径);
PIL (图片处理);
- 接下来附上部分源码:
导入模块

读取excel文件以及删除解压后无用的文件夹(可循环读取多个excel文件)

解压缩文件


图片处理

这里对每张图片的顶部8%去除
压缩文件

处理好的excel中的每张图片都按照要求进行剪裁(按照像素删除顶部的8%)大大节省了项目组的人工机械劳动力。而且在还原后的excel中的图片位置以及其他数据均没有任何改变,与原效果一致。
如下:

excel中处理后图片(剪切去除顶部8%部分)

excel中原图片
代码也可打包成在windows平台运行的.exe文件,方便同事分享使用。
以上均为年丰时稔原创,有想要全部代码的小伙伴请私信吧,谢谢,转发、评论、点赞!