记录读取方法和遇到的坑
需要用到** openpyxl和openpyxl_image_loader** ,可以直接**pip install **安装。代码如下
from openpyxl import load_workbook
from openpyxl_image_loader import SheetImageLoader
def extract_excel_pic(excel_file, data_dir):
"""
:param excel_file: excel文件路径+文件名
:param data_dir: 保存路径
:return:
"""
wb = load_workbook(excel_file)
ws = wb['Sheet1']
image_loader = SheetImageLoader(ws)
num = ws.max_row # 总行数,用来遍历读取和图片命名
for i in tqdm(range(2, num + 1)): # 从第2行开始
image = image_loader.get('B' + str(i)) # B列的图片
# image.show()
image.save(data_dir + str(i - 2) + ".png") # 行号-2命名
raise ValueError("Cell {} doesn't contain an image".format(cell))
ValueError: Cell b2 doesn't contain an image
表格中是有图片的,但是读不到,原因是原excel文件中的图片是wps插入的,图片是嵌入到单元格里的,需要全选图片,然后右键转为浮动图片,这样就可以读到了,而且用Microsoft Excel 打开也可以看到图片。
如果只是需要获得所有图片而不考虑label,可以通过修改后缀名为zip,然后解压,在目录 解压文件名\xl\media 得到全部图片。