Python自动化办公:一分钟高效搞定Excel所有图片的导入导出

liftword3个月前 (01-08)技术文章34

在日常办公中,我们经常需要在Excel表格中插入或导出图片,特别是在制作产品目录、报告或展示数据时。现在有这样一份任务,产品名录表里需要将每个产品的实拍图片插入到D列上,产品有上百个,传统方法需要将图片一个个贴到excel里,然后将图片调整好大小,这个过程费时费力,而且容易出错。幸运的是,Python提供了强大的库来帮助我们实现这些任务的自动化。

一、Python导入图片到Excel

使用Python将图片批量导入Excel表格中,可以极大地提高我们的工作效率。以下是一个简单的示例代码,展示了如何使用openpyxl库将图片添加到Excel工作表中:

import os  
import glob  
from openpyxl import load_workbook  
from openpyxl.drawing.image import Image

def write_images_to_excel(image_paths, excel_file):
    wb = load_workbook(excel_file)  
    ws = wb.active 

    for path in image_paths:
    # 创建Image对象
        img = Image(path)

        # 调整图???,假设放在A列,1:1?例
        img.width, img.height = 150, 50

        # 添加图?到?作表,放在图?名对应的?
        ws.add_image(img, 'D' + str(image_paths.index(path) + 3))

    wb.save(excel_file)

# ?例图?路径和Excel?件名


def get_image_paths(folder_path):  
    image_paths = []  
    # 使用glob模块匹配所有jpg和png图片  
    for extension in ['*.jpg', '*.png']:  
        image_paths.extend(glob.glob(os.path.join(folder_path, extension)))  
    return image_paths  

# 使用你的文件夹路径替换下面的'your_folder_path'  
folder_path = 'extracted_images'  
image_paths = get_image_paths(folder_path)  
print(image_paths)

excel_file = 'test.xlsx'
write_images_to_excel(image_paths, excel_file)

这段代码首先打开需要插入图片的Excel,并获取活动工作表。然后,它遍历了一个包含图片路径的列表,并为每个路径创建了一个Image对象。接着,它设置了图片的大小,并将图片添加到了工作表的指定位置。最后,保存工作簿。


二、Python从Excel导出图片

有时候,我们可能需要从Excel文件中提取图片,比如为了备份、进一步处理或在其他应用程序中使用。虽然openpyxl库本身不提供直接从Excel提取图片的功能,但我们可以结合其他方法来实现这一需求。以下是一个示例代码:

import os  
import zipfile  
from openpyxl import load_workbook  

# 加载包含图片的Excel工作簿  
wb = load_workbook('VFTLURE.xlsx')  
ws = wb.active  

# 创建输出目录来保存提取的图片  
output_dir = 'extracted_images'  
if not os.path.exists(output_dir):  
    os.makedirs(output_dir)  

# Excel文件作为ZIP归档处理  
with zipfile.ZipFile('VFTLURE.xlsx', 'r') as zip_ref:  
    # 遍历ZIP归档中的文件,查找图片文件  
    for zip_info in zip_ref.infolist():  
        if zip_info.filename.endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):  
            # 提取图片到输出目录  
            img_path = os.path.join(output_dir, os.path.basename(zip_info.filename))  
            with zip_ref.open(zip_info) as img_file, open(img_path, 'wb') as out_file:  
                out_file.write(img_file.read())  

print(f"Images extracted to {output_dir}")

这段代码首先加载了包含图片的Excel工作簿。然后,它创建了一个输出目录来保存提取的图片。接下来,它将Excel文件视为一个ZIP归档文件,并遍历其中的所有文件。对于每个以图片格式结尾的文件,它将其提取到输出目录中。最后,它打印了一条消息,指示图片已成功提取到指定目录。上面Excel中的所有图片就被提取到制定文件夹里了

总结

通过Python自动化办公,我们可以轻松实现Excel中图片的批量导入与导出,大大提高了工作效率和准确性。无论是制作产品目录、报告还是其他需要处理大量图片的场景,这些自动化脚本都能为我们节省大量时间和精力。

相关文章

Python自动生成手绘、证件照、九宫格...太炫酷了

Python像是叮当猫的口袋,几乎什么都能做,适合外行小白们去摸索学习,能极大的增加对编程的兴趣。有些工具用python来实现不一定是技术上的最优选择,但可能是最简洁、最面向大众的。介绍几个不错的处理...

新手必看!如何用Python绘制复杂函数图像

在数据可视化的奇妙世界里,Python 就像是一把万能钥匙,能够帮我们打开一扇扇通往复杂函数图像绘制的大门。今天,就跟着我一起来探索如何用 Python 绘制那些令人惊叹的复杂函数图像吧!对于数学爱好...

用Python制作数据报告:如何自动生成PDF格式的报告?

最近在琢磨数据分析工作的自动化,手动做报告真是太费劲啦!试过用Python整了个自动生成PDF报告的小工具,效果还不错。今天就聊聊怎么用Python把数据处理、可视化和PDF生成一条龙搞定。repor...

用Python实现AI换脸

AI换脸要求把两张人脸的面部内容进行交替,并且能够尽量地进行拟合。我们首先在互联网上下载两张图片:(妹子证件照不好找,用下面两位哥的图片凑合一下)换脸技术在现在看来已经不是那么热门了,已经有很多应用软...

Python大屏看板最全教程之Pyecharts图表

阅读本文大约需要3分钟主要内容:数据分析。适用人群:Python初学者,数据分析师,或有志从事数据分析工作的人员。准备软件:Anaconda(Spyder:代码编译)、Navicat Premium...

Python如何对一张人脸图像进行特征提取?

对人脸图像进行特征提取通常需要使用深度学习和计算机视觉的相关库,在Python中相关常用的库包括如下的内容OpenCV、Dlib、和深度学习模型库如FaceNet、DeepFace等,通过这些工具我们...