linux环境,如何用python获取execl(仅xls格式)中的图片

linux环境,如何用python获取execl(仅xls格式)中的图片

可以通过Python 操作 Excel库。可以参考知乎链接使用合适的excel库:可能是全网最完整的 Python 操作 Excel库总结
以下为参考文章的个人使用参考:
使用 xlrd 库,可以读取 .xls 文件中的数据和图片。具体步骤如下:
导入 xlrd 模块:

import xlrd



打开 .xls 文件:

wb = xlrd.open_workbook('test.xls')

获取工作表对象:

sheet = wb.sheet_by_index(0)

获取图片列表:

images = sheet.get_images()

遍历图片列表,获取图片数据和位置:

for image in images: data, row, col, x, y, width, height = image

保存图片数据到文件:

with open('image.jpg', 'wb') as f: f.write(data)

其他的比如panda库,可以读取.xls文件的数据,但是不能直接读图片。需要借助其他库,比如pls,以下作参考:
导入 pandas 模块:

import pandas as pd

读取 .xls 文件中的数据:

df = pd.read_excel('test.xls')

获取图片所在的单元格值,通常是一个字节串:

img_data = df.loc[0, 'image']

导入 PIL 模块:

from PIL import Image

将字节串转换为 PIL 图像对象:

img = Image.open(io.BytesIO(img_data))

显示或保存图像:

img.show() 或 img.save('image.jpg')

【以下回答由 GPT 生成】

解决方案

在Linux环境下,你可以使用Python结合第三方库来实现获取Excel中图片的功能。下面是具体的步骤:

  1. 安装依赖库:首先确定你的系统已经安装了Python,然后使用pip安装xlrd库,该库可以用于读取xls格式的Excel文件。在终端中运行以下命令:
pip install xlrd
  1. 导入依赖库:在Python代码中导入xlrd库。
import xlrd
  1. 打开Excel文件:使用xlrd库的open_workbook函数打开Excel文件。
workbook = xlrd.open_workbook('path/to/your/excel.xls')

请将path/to/your/excel.xls 替换为你要读取的Excel文件的实际路径。

  1. 获取所有的sheet:通过workbook对象的sheet_names()方法获取Excel文件中所有的sheet名称。
sheet_names = workbook.sheet_names()
  1. 遍历每个sheet:使用xlrd库的sheet_by_name方法获取每个sheet的对象,并使用对象的get_all_images方法获取所有图片。
images = []
for sheet_name in sheet_names:
    sheet = workbook.sheet_by_name(sheet_name)
    sheet_images = sheet.get_all_images()
    images.extend(sheet_images)

此时,images列表中包含了Excel文件中所有的图片。

  1. 保存图片:遍历images列表,使用xlrd库的ImageData对象的save方法保存图片。
for index, image in enumerate(images):
    with open(f'image{index}.png', 'wb') as f:
        f.write(image.image_data)
  1. 完整的代码示例:
import xlrd

workbook = xlrd.open_workbook('path/to/your/excel.xls')
sheet_names = workbook.sheet_names()

images = []
for sheet_name in sheet_names:
    sheet = workbook.sheet_by_name(sheet_name)
    sheet_images = sheet.get_all_images()
    images.extend(sheet_images)

for index, image in enumerate(images):
    with open(f'image{index}.png', 'wb') as f:
        f.write(image.image_data)

将上述代码中的path/to/your/excel.xls替换为你要读取的Excel文件的实际路径,执行该代码即可获取Excel文件中的图片,并将图片保存在当前目录下。

注意:上述代码只能读取.xls格式的Excel文件,在读取.xlsx格式的文件时,需要使用其他库,如openpyxl

希望这个解决方案能够帮到你,如果有任何疑问,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^