import os
from PIL import Image
from docx import Document
from docx.shared import Inches
# 创建空白的 Word 文档
doc = Document()
# 获取所有图片文件路径
image_folder = r"E:\东\全部二维码-------11"
image_files = [os.path.join(image_folder, file) for file in os.listdir(image_folder) if file.endswith(".png")]
# 计算每个单元格应该放置的图片的索引
num_images = len(image_files)
# 根据图片数量自动设置表格的行数和列数
num_rows = num_images // 3 if num_images % 3 == 0 else num_images // 3 + 1
num_cols = 3
# 创建表格
table = doc.add_table(rows=num_rows, cols=num_cols)
# 遍历每个单元格,将图片插入到表格中
# 切片操作是非常高效的,因为它只返回需要的元素,而不会复制整个列表。因此,在处理大型列表时,使用切片操作可以显著提高程序的性能。
for i, image_file in enumerate(image_files):
# 打开并调整图片尺寸(可选)
image = Image.open(image_file)
image.thumbnail((Inches(1.5), Inches(1.5)))
# 将图片添加到表格的单元格中
cell = table.cell(i // num_cols, i % num_cols)
cell.add_paragraph().add_run().add_picture(image_file, width=Inches(1.5))
# 保存 Word 文档
doc.save("东全部车辆new--二维码.docx")