在使用Python进行办公自动化操作时,会经常和Excel进行交互,本篇主要讲解了如何用Python读取Excel中图片以及如何用Python往Excel中写入图片,希望对Python的学习有所帮助。
大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进行分析。
那么你知道如何使用Python读取Excel中的图片?又如何使用Python直接往Excel中写入图片?甚至使用Python制作一个Excel可视化大屏?
因为图片的存储格式与数字数据格式不一样,所以实现起来稍显复杂,本文就将对以下两个部分进行深入讲解:
Python读取Excel图片
Python写入Excel图片
涉及的Python模块有以下几个
PIL
win32
os
zipfile
numpy
xlsxwriter
一、准备
由于此次包比较多,我们需要在命令行中使用pip进行安装
pip install pillow #这是对模块PTL的安装
pip install pypiwin32 #这是对win32的安装
pip install os
pip install zipfile
pip install numpy
pip install xlsxwriter
在下载的过程中,有些包是比较大的,会出现超时time out的报错现象。这里介绍几个国内的镜像,大家可以尝试其中一个,速度会比单纯的pip快10倍不止。地址如下:
http://pypi.douban.com/simple/ 豆瓣
http://mirrors.aliyun.com/pypi/simple/ 阿里
http://pypi.hustunique.com/simple/ 华中理工大学
http://pypi.sdutlinux.org/simple/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/simple/ 中国科学技术大学
https://pypi.tuna.tsinghua.edu.cn/simple 清华
代码如下:
pip install 模块名 -i 网址
以清华镜像举例
pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
注意:如果是原生态的cmd窗口安装的,会提示加个--user命令,读者按照指示即可。
二、Python读取Excel图片
上面说过,Python读取Excel图片有两种方法。
第一种:将xlsx后缀名改为zip形式,即进行压缩。而后读取里面存储图片的文件,将里面的图片取出来。
第二种:用提取到粘贴板中的方法将图片保存到JPG、PNG等格式中
两种方法各有缺点和优点,第一种方法缺点是代码量比较长,优点是万能,Excel的所有格式都可以运用。
第二种的优点是代码量少,缺点是对于一些xlsx的文件运用不了。
首先我们先讲解第一种方法,之后在讲解第二种方法时,大家可以进行对比!
讲解之前我们用的是以下的example.xlsx文件,里面有四个工作表,每个工作表都有一张数据可视化图。例如工作表3中的气泡图如下:
2.1 方法一
和之前的文章一样,我们先给出全部代码与效果图之后再进行讲解
import os
import zipfile
import os
from PIL import Image
import numpy as np
path = r'D:'
count = 1
for file in os.listdir(path):
new_fil