Python 将图片插入 Excel 指定单元格

Excel 是一款非常常用的办公软件,它不仅可以用于存储和处理数据,还可以插入图片进行更加直观的展示。在某些场景下,我们可能需要使用 Python 将图片插入到 Excel 的指定单元格中。本文将介绍如何使用 Python 来实现这一功能。

准备工作

在开始编写代码之前,我们需要确保已经安装了以下两个 Python 库:openpyxlPIL。如果你还没有安装,可以使用以下命令进行安装:

pip install openpyxl
pip install pillow

openpyxl 是一个用于读写 Excel 文件的库,而 PIL 则是一个用于处理图片的库。

示例代码

接下来,我们将编写代码来实现将图片插入到 Excel 的指定单元格中。首先,我们需要导入所需的库:

from openpyxl import Workbook
from openpyxl.drawing.image import Image
from openpyxl.utils import get_column_letter
from PIL import Image as PILImage

然后创建一个新的 Excel 文件:

wb = Workbook()
ws = wb.active

接下来,我们需要加载图片并将其插入到 Excel 中。首先,我们使用 PIL 库来打开图片文件:

image_path = "path_to_your_image.jpg"
pil_image = PILImage.open(image_path)

然后,我们需要将图片的大小进行调整,使其适应目标单元格的大小。我们可以通过获取目标单元格的宽度和高度来进行调整:

cell_width = ws.column_dimensions[get_column_letter(1)].width
cell_height = ws.row_dimensions[1].height
pil_image.thumbnail((cell_width, cell_height))

接下来,我们需要将 PIL 图像对象转换为 openpyxl 图像对象,并指定插入的位置:

img = Image(pil_image)
ws.add_image(img, "A1")

最后,我们保存 Excel 文件:

wb.save("output.xlsx")

完整代码如下:

from openpyxl import Workbook
from openpyxl.drawing.image import Image
from openpyxl.utils import get_column_letter
from PIL import Image as PILImage

# 创建一个新的 Excel 文件
wb = Workbook()
ws = wb.active

# 加载图片并调整大小
image_path = "path_to_your_image.jpg"
pil_image = PILImage.open(image_path)
cell_width = ws.column_dimensions[get_column_letter(1)].width
cell_height = ws.row_dimensions[1].height
pil_image.thumbnail((cell_width, cell_height))

# 将图片插入到 Excel
img = Image(pil_image)
ws.add_image(img, "A1")

# 保存 Excel 文件
wb.save("output.xlsx")

总结

通过使用 openpyxlPIL 库,我们可以很方便地将图片插入到 Excel 的指定单元格中。首先,我们需要加载图片并调整大小,然后将其转换为适用于 openpyxl 的图像对象,最后将其插入到指定单元格中。希望本文对你有所帮助!