from openpyxl import load_workbook from docx import Document from docxtpl import DocxTemplate from docx.shared import Pt # 打开 Excel 文件并加载工作表 workbook = load_workbook('mb.xlsx') worksheet = workbook.active # 遍历单元格并提取字段数据 data = [] for row in worksheet.iter_rows(min_row=2, values_only=True): fields = row[1:15] # 提取从 B 列到 O 列的字段数据 data.append(fields) # 打开 Word 文件模板并替换变量值 document = DocxTemplate('投保单.docx') variables = ['变量1', '变量2', '变量3', '变量4', '变量5', '变量6', '变量7', '变量8', '变量9', '变量10', '变量11', '变量12', '变量13', '变量14'] for i, fields in enumerate(data): context = {} for j, value in enumerate(fields): context[variables[j]] = str(value) document.render(context) document.save(f'{fields[10]}{fields[3]}.docx')
note:
1、workbook = load_workbook('mb.xlsx') 如果模板表格没有在工程目录下,修改为实际目录。
2、document = DocxTemplate('投保单.docx')如果 投保单.docx 没有在工程目录下,修改为实际目录。
3、 document.save(f'{fields[10]}{fields[3]}.docx') 生成位置默认在工程目录下,和代码在同一文件夹,如果需要修改,修改为实际目录。