当前位置:首页>python>用python从.xlsx文件每读一行,同时替换.docx模板,直到循环生成完一堆.docx文件

用python从.xlsx文件每读一行,同时替换.docx模板,直到循环生成完一堆.docx文件

  • 2026-10-21 13:27:52
用python从.xlsx文件每读一行,同时替换.docx模板,直到循环生成完一堆.docx文件
晚上继续考虑春节后的“大活儿”要怎么干。python还是要好好学学的,奈何语法还是不熟、库函数的调用内容也太多,还是依赖搜索引擎和AI,搞出了基本雏形。
以下代码绝大部分由AI生成:
from openpyxl import load_workbookfrom docxtpl import DocxTemplateimport osdef generate_docs_from_excel(excel_path, template_path, output_dir):    # 创建输出目录    os.makedirs(output_dir, exist_ok=True)    # 加载Excel和工作表    wb = load_workbook(excel_path)    ws = wb.active    # 处理标题行    headers = [cell.value for cell in ws[1]]    # 逐行处理数据    for idx, row in enumerate(ws.iter_rows(min_row=2, values_only=True), start=1):        # 构建数据字典(列名:值)        row_data = dict(zip(headers, row))        # 生成Word文档        doc = DocxTemplate(template_path)        doc.render(row_data)        # 保存文件        output_path = os.path.join(output_dir, f"output_{idx}.docx")        doc.save(output_path)        print(f"生成文件: {output_path}")# 使用示例if __name__ == "__main__":    generate_docs_from_excel(        excel_path="input.xlsx",     # 输入Excel路径        template_path="tpl.docx",    # Word模板路径        output_dir="./"     # 输出tpl.docx目录    )

input.xlsx:

tpl.docx:

执行:

$ python test.py

出来一小堆:

挨个打开,达到预期效果了,细节回头再改了。

最新文章

随机文章