LL% 2023-10-27 21:04 采纳率: 80%
浏览 4

python将文件夹内图片导入excel

将一个文件夹里面的图片(大小规则一致)导入到excel里面去,然后根据excel单元格值和图片名做匹配,将图片排布好。比如A1单元格值是ABC,那就把文件夹内ABC.jpg的图片放到A1单元格里,C3单元格值是ADD,就把文件夹内ADD.jpg放到C3里面去。
这个怎么才能实现?

  • 写回答

2条回答 默认 最新

  • 2301_79532845 2023-10-27 22:41
    关注
    
    import os
    from openpyxl import Workbook
    from openpyxl.drawing.image import Image
    from PIL import Image as PILImage
    
    def read_folder_and_excel(folder_path, excel_path):
        # 创建一个新的Excel工作簿
        wb = Workbook()
        ws = wb.active
    
        # 读取文件夹中的所有图片文件
        image_files = [f for f in os.listdir(folder_path) if f.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp'))]
    
        # 遍历Excel文件中的每个单元格
        for row in ws.iter_rows():
            for cell in row:
                # 如果单元格值是图片名称的一部分,就从文件夹中查找对应的图片
                if cell.value and cell.value in image_files:
                    # 读取图片文件
                    img_path = os.path.join(folder_path, cell.value)
                    img = PILImage.open(img_path)
    
                    # 计算图片的大小和Excel单元格的大小
                    img_width, img_height = img.size
                    cell_width = cell.column_letter + ':' + cell.column_letter + str(cell.row)
                    cell_height = cell.row + ':' + cell.row
    
                    # 将图片插入到Excel单元格中
                    ws.column_dimensions[cell.column_letter].width = img_width / 10
                    ws.row_dimensions[cell.row].height = img_height / 10
                    img_cell = ws.cell(row=cell.row, column=cell.column)
                    img_cell.value = None
                    img_cell.add_picture(img_path, width=cell_width, height=cell_height)
    
        # 保存Excel文件
        wb.save(excel_path)
    
    # 请将以下代码中的'folder_path'和'excel_path'替换为你的文件夹路径和Excel文件路径
    folder_path = 'path/to/folder'
    excel_path = 'path/to/excel/file.xlsx'
    read_folder_and_excel(folder_path, excel_path)
    

    首先创建一个新的Excel工作簿,然后读取文件夹中的所有图片文件。接下来,它遍历Excel文件中的每个单元格,如果单元格值是图片名称的一部分,就从文件夹中查找对应的图片,并将其插入到Excel单元格中。最后,它将Excel文件保存到指定的路径。

    请注意,这段代码假设图片文件名是唯一的,并且Excel文件中的单元格值与图片文件名的一部分完全匹配。你可能需要根据你的具体需求进行调整。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月27日

悬赏问题

  • ¥15 程序实在不会写,要秃了
  • ¥15 pycharm导入不了自己的包
  • ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
  • ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
  • ¥15 关于R语言单因素与多因素线性回归的平均值
  • ¥15 服务器清除BIOS之后引导不了
  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度