Python 将图片插入 Excel 指定单元格
Excel 是一款非常常用的办公软件,它不仅可以用于存储和处理数据,还可以插入图片进行更加直观的展示。在某些场景下,我们可能需要使用 Python 将图片插入到 Excel 的指定单元格中。本文将介绍如何使用 Python 来实现这一功能。
准备工作
在开始编写代码之前,我们需要确保已经安装了以下两个 Python 库:openpyxl
和 PIL
。如果你还没有安装,可以使用以下命令进行安装:
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")
总结
通过使用 openpyxl
和 PIL
库,我们可以很方便地将图片插入到 Excel 的指定单元格中。首先,我们需要加载图片并调整大小,然后将其转换为适用于 openpyxl
的图像对象,最后将其插入到指定单元格中。希望本文对你有所帮助!