Excel表中的图片批量重命名

查看 50|回复 3
作者:D丶低调   
因为工作需要,需要将excel表中的图片全部导出来,并以表中的数据命名,本想着偷个懒,来论坛找一找,结果没有找到导出的脚本,找到了大佬@Eks6666 的插入的脚本,链接如下,https://www.52pojie.cn/thread-1983298-1-1.html
既然这样,那就自己搞一个吧[Python] 纯文本查看 复制代码import openpyxl
from PIL import Image as PillowImage
import os
from datetime import datetime
"""
将excel表中的图片以前3列的数据+时间戳命名
"""
def get_current_timestamp():
    return datetime.now().strftime('%Y%m%d%H%M%S%f')[:-3]
def export_excel_images(excel_file_path, file_path, naming_columns=(0, 1, 2)):
    workbook = openpyxl.load_workbook(excel_file_path)
    if not os.path.exists(file_path):
        os.makedirs(file_path)
    for sheet_name in workbook.sheetnames:
        worksheet = workbook[sheet_name]
        for img in worksheet._images:
            try:
                anchor_row = img.anchor._from.row + 1
                name_parts = []
                for col_index in naming_columns:
                    cell_value = worksheet.cell(row=anchor_row, column=col_index + 1).value
                    name_parts.append(str(cell_value) if cell_value is not None else "")
                timestamp_part = get_current_timestamp()
                name = '_'.join(name_parts) + '_' + timestamp_part
                image_path = os.path.join(file_path, f"{name}.jpeg")
                pil_image = PillowImage.open(img.ref)
                pil_image.save(image_path)
                print(f"成功保存图片: {image_path}")
            except AttributeError as ae:
                print(f"保存图片时出现属性错误: {ae},请检查图片相关数据是否正确。")
            except Exception as e:
                print(f"保存图片时出现未知错误: {e}")
excel_file_path = r"C:\***\****.xlsx"#excel表格路径
file_path =r"C:\****\****"#图片保存地址
export_excel_images(excel_file_path, file_path)

图片, 数据

pomxion   

以前 用过 类似的方式,很便捷!
D丶低调
OP
  


pomxion 发表于 2024-12-7 23:00
以前 用过 类似的方式,很便捷!

主要是我们公司电脑的excel没有图片导出的功能 这才想着用脚本搞
aa0810666   

试试看 谢谢大哥
您需要登录后才可以回帖 登录 | 立即注册

返回顶部