吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1305|回复: 78
上一主题 下一主题
收起左侧

[Python 原创] python一键批量插入图片到Excel

  [复制链接]
跳转到指定楼层
楼主
Eks6666 发表于 2024-11-19 00:43 回帖奖励
[Python] 纯文本查看 复制代码
from openpyxl import load_workbook
from openpyxl.drawing.image import Image as OpenpyxlImage
from openpyxl.utils import get_column_letter
import os

def insert_images_into_excel(worksheet, image_dir, target_column, start_row=2, image_size=(20, 20)):
    """
    插入图片到Excel的工作表中
    :param worksheet: Excel工作表对象
    :param image_dir: 包含图片文件的目录路径
    :param target_column: 目标列字母,例如 'A' 或 'Z'
    :param start_row: 开始插入图片的行号,默认为 2
    :param image_size: 图片的宽度和高度,单位为厘米(cm),默认为 (20, 20)
    :return: None
    """
    images_paths =[os.path.join(image_dir, img_path) for img_path in os.listdir(image_dir) if img_path.lower().endswith(('.png', '.jpg'))]
    images_paths.sort(key=lambda x: os.path.basename(x))
    for i, img_path inenumerate(images_paths, start=start_row):
        img = OpenpyxlImage(img_path)
        img.width, img.height = image_size
        cell_position =f'{target_column}{i}'
        worksheet.add_image(img, cell_position)

if __name__ =="__main__":
    try:
        workbook = load_workbook('qrcode.xlsx')
        worksheet = workbook.active
        dir_path ='./images'
        last_column = get_column_letter(worksheet.max_column)
        worksheet.cell(row=1, column=worksheet.max_column, value='二维码数据')
        insert_images_into_excel(worksheet, dir_path, last_column)
        workbook.save('modified_file.xlsx')
    except Exception as e:
        print(f"An error occurred: {e}")

免费评分

参与人数 9吾爱币 +7 热心值 +6 收起 理由
ajdntmf + 1 + 1 谢谢@Thanks!
hwh425 + 1 鼓励转贴优秀软件安全工具和文档!
shengruqing + 1 我很赞同!
winhuang + 1 + 1 我很赞同!
dumbking + 1 + 1 用心讨论,共获提升!
ccgao + 1 + 1 我很赞同!
peng214 + 1 谢谢@Thanks!
jonathan329 + 1 谢谢@Thanks!
bzba + 1 感谢分享

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
wudalang123 发表于 2024-11-19 21:09
jessylake 发表于 2024-11-19 10:33
加空格是好了又说路径不对,应该把qrode.xlsx 放在哪里?
>>> %Run 31.py
An error occurred: [Errno 2 ...

错误提示 `[Errno 2] No such file or directory: 'qrcode.xlsx'` 表示Python脚本在尝试打开名为 `qrcode.xlsx` 的Excel文件时,没有在预期的位置找到这个文件。

要解决这个问题,你需要确保 `qrcode.xlsx` 文件位于Python脚本能够访问到的路径上。以下是几种可能的解决方案:

1. **将文件放在脚本的当前工作目录**:
   - 确保 `qrcode.xlsx` 文件位于与你的Python脚本(`31.py`)相同的目录下。

2. **指定完整的文件路径**:
   - 在脚本中,将 `qrcode.xlsx` 的路径修改为完整的文件路径。例如,如果 `qrcode.xlsx` 位于 `C:\Documents` 目录下,你应该这样修改代码:
     ```python
     workbook = load_workbook('C:/Documents/qrcode.xlsx')
     ```

3. **更改工作目录**:
   - 如果你不想改变文件的位置或代码中的路径,你可以在运行脚本之前,将你的工作目录更改为包含 `qrcode.xlsx` 的目录。这可以通过命令行工具如 `cd` 命令(在Windows中)或 `pwd` 和 `cd` 命令(在Unix/Linux/Mac中)来完成。

4. **使用相对路径**:
   - 如果 `qrcode.xlsx` 位于脚本的特定子目录中,你可以使用相对路径来引用它。例如,如果 `qrcode.xlsx` 位于与脚本同一目录的 `data` 子目录中,你可以这样写:
     ```python
     workbook = load_workbook('./data/qrcode.xlsx')
     ```

确保你选择的方法与你的文件系统和脚本运行环境相匹配。如果你不确定当前工作目录是什么,你可以在Python中使用以下代码来打印它:
```python
import os
print(os.getcwd())
```
这将显示当前工作目录的路径,确保 `qrcode.xlsx` 文件位于这个目录或指定的路径下。
沙发
YukijudaiNsmy 发表于 2024-11-19 00:51
3#
bzba 发表于 2024-11-19 01:01
4#
a138208 发表于 2024-11-19 01:06
谢谢大佬
5#
sjzhy 发表于 2024-11-19 02:40
感谢分享
6#
HKios 发表于 2024-11-19 02:52
感谢分享,这真是好东西
7#
agff 发表于 2024-11-19 05:43
妙啊,刚好需要这个
8#
YiRan777 发表于 2024-11-19 05:51
感谢大佬分享,需要这个
9#
shinian0buwan 发表于 2024-11-19 06:15
感谢分享  这个可以直接导入的
10#
Hakuryu 发表于 2024-11-19 06:23
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 15:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表