Python 图片批量写入 Excel

1. 简介

在实际开发中,我们经常需要将图片数据保存到 Excel 中。本文将教会你如何使用 Python 实现图片批量写入 Excel 的功能。

2. 实现步骤

下面是实现图片批量写入 Excel 的步骤:

步骤 描述
1 创建一个新的 Excel 文件
2 遍历图片文件夹
3 将图片数据写入 Excel 中
4 保存 Excel 文件

接下来,我们将逐步介绍每个步骤需要做什么,以及相应的代码实现。

3. 创建一个新的 Excel 文件

首先,我们需要创建一个新的 Excel 文件来存储图片数据。我们可以使用 openpyxl 库来操作 Excel 文件。

import openpyxl

# 创建一个新的工作簿
workbook = openpyxl.Workbook()

# 选择默认的工作表
worksheet = workbook.active

在上面的代码中,我们导入了 openpyxl 库,并使用 Workbook() 函数创建了一个新的工作簿。然后,我们选择默认的工作表。

4. 遍历图片文件夹

接下来,我们需要遍历存储图片的文件夹,获取所有的图片文件。我们可以使用 os 模块来实现文件夹遍历功能。

import os

# 图片文件夹路径
image_folder = 'path/to/image/folder'

# 遍历文件夹
for filename in os.listdir(image_folder):
    if filename.endswith('.jpg') or filename.endswith('.png'):
        # 处理图片文件

在上面的代码中,我们定义了一个图片文件夹的路径。然后,使用 os.listdir() 函数遍历文件夹中的所有文件。通过判断文件扩展名是否为 .jpg.png 来确定是否为图片文件。

5. 将图片数据写入 Excel 中

接下来,我们需要将遍历到的图片数据写入 Excel 中。我们可以使用 openpyxl 库的 Image 类来实现图片的写入。

from openpyxl.drawing.image import Image

# 图片文件路径
image_file = os.path.join(image_folder, filename)

# 打开图片文件
image = Image(image_file)

# 将图片插入到指定单元格
worksheet.add_image(image, 'A1')

在上面的代码中,我们使用 os.path.join() 函数获取图片文件的完整路径。然后,使用 Image() 函数打开图片文件,并将图片插入到指定的单元格(这里是 A1)中。

6. 保存 Excel 文件

最后,我们需要保存修改后的 Excel 文件。

# 保存 Excel 文件
workbook.save('path/to/save/excel/file.xlsx')

在上面的代码中,我们使用 save() 方法保存 Excel 文件。你可以根据自己的需求指定保存文件的路径和文件名。

7. 完整代码示例

下面是完整的代码示例:

import os
from openpyxl import Workbook
from openpyxl.drawing.image import Image

# 创建一个新的工作簿
workbook = Workbook()

# 选择默认的工作表
worksheet = workbook.active

# 图片文件夹路径
image_folder = 'path/to/image/folder'

# 遍历文件夹
for filename in os.listdir(image_folder):
    if filename.endswith('.jpg') or filename.endswith('.png'):
        # 图片文件路径
        image_file = os.path.join(image_folder, filename)

        # 打开图片文件
        image = Image(image_file)

        # 将图片插入到指定单元格
        worksheet.add_image(image, 'A1')

# 保存 Excel 文件
workbook.save('path/to/save/excel/file.xlsx')

8. 总结

通过以上步骤,我们成功实现了将图片批量写入 Excel 的功能。你可以根据自己的需求进行修改和扩展,例如调整图片插入的位置、格式化单元格等。

希望本文对刚入行的小白能够有所帮助,如果有任何问题,请随时提问。祝你在 Python 开发的道路上越走越远!