python 批量将图片存入excel单元格内

python 批量将图片存入excel单元格

  • 示例代码1
  • 示例代码2

示例代码1

https://blog.csdn.net/wuyoudeyuer/article/details/128185284

# -*- coding: utf-8 -*-
# @Time   : 2022-12-05
# @Author : Carl_DJ

'''
实现功能:
    在excel中,对应的名称后面,插入图片

'''

import openpyxl,PIL
from openpyxl.drawing.image import Image
import os

#excel文件路径
excel_path = './pic/image.xlsx'

#图片名称为A列
img_name_column = 'A'

#图片写入B列
img_column = 'B'
#读取图片的地址
img_path = './data/picture'

#转换图片格式,强制转换成jpg格式
# img_type = PIL.Image.open(img_path).convert("RGB")
# img_type.save(img_path, 'jpeg')

#打开excel文件
wb = openpyxl.load_workbook(excel_path)
#获取sheet页
ws = wb.active

for i, v in enumerate(ws[img_name_column], start=1):
    #图片路径
    img_file_path = os.path.join(img_path, f"{v.value}.jpg")
    #获取图片
    img = Image(img_file_path)
    #设置图片的大小
    img.width, img.height = (110, 110)
    # 设置表格的宽20和高85
    ws.column_dimensions[img_column].width = 20
    ws.row_dimensions[i].height = 85
    # 图片插入名称对应单元格
    ws.add_image(img, anchor=img_column + str(i))

#保存
wb.save(excel_path)  # 保存
#关闭
wb.close()
print(f'保存完成')

示例代码2

以下是一个示例程序,可以实现将指定目录下的所有图片存储到Excel单元格内。注意需要安装openpyxl库和Pillow库。

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

# 设定目录和Excel工作簿名称
directory = "path/to/images/"
workbook_name = "images.xlsx"

# 创建新工作簿
wb = Workbook()
sheet = wb.active

# 遍历目录下的所有图片文件
for i, filename in enumerate(os.listdir(directory)):
    if filename.endswith(".jpg") or filename.endswith(".png"):
        # 打开图片并将其存储到Excel单元格中
        img = Image(directory + filename)
        sheet.add_image(img, f'A{i + 1}')

# 调整单元格大小以适应图片
for column_cells in sheet.columns:
    length = max(len(str(cell.value)) for cell in column_cells)
    sheet.column_dimensions[get_column_letter(column_cells[0].column)].width = length

# 保存工作簿
wb.save(workbook_name)

以上代码会将指定目录下所有的.jpg或.png文件存储到Excel单元格中,并将单元格大小调整为适应图片大小。需要注意的是,如果目录下有其他类型的文件,程序会抛出异常并停止运行。可以根据实际情况调整程序逻辑和异常处理方式。

你可能感兴趣的:(python,python,excel)