Eks6666 发表于 2024-11-19 00:43

python一键批量插入图片到Excel

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 =
    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}")

wudalang123 发表于 2024-11-19 21:09

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

错误提示 ` 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` 文件位于这个目录或指定的路径下。

a138208 发表于 2024-11-19 01:06

谢谢大佬

sjzhy 发表于 2024-11-19 02:40

感谢分享

HKios 发表于 2024-11-19 02:52

感谢分享,这真是好东西

agff 发表于 2024-11-19 05:43

妙啊,刚好需要这个

YiRan777 发表于 2024-11-19 05:51

感谢大佬分享,需要这个

shinian0buwan 发表于 2024-11-19 06:15

感谢分享这个可以直接导入的

Hakuryu 发表于 2024-11-19 06:23

感谢分享

ljq882001 发表于 2024-11-19 07:48

学习了,感谢分享,

Night夜曲 发表于 2024-11-19 08:01


感谢分享这个可以直接导入的
页: [1] 2 3 4 5 6 7 8
查看完整版本: python一键批量插入图片到Excel