水里有鱼 发表于 2021-12-12 21:19:24

根据Excel信息批量生成Word文件的程序只生成最后一行内容

本帖最后由 水里有鱼 于 2021-12-12 21:41 编辑

向论坛大佬们求助,在书上抄了一个批量生成Word文件的程序,只生成了Excel最后一行的一个Word,还把我原文档表格里的字体改变了。
from openpyxl import load_workbook
from docx import Document
def info_update(doc,old_info,new_info):
    for para in doc.paragraphs:
      for run in para.runs:
            run.text=run.text.replace(old_info,new_info)
    for table in doc.tables:
      for row in table.rows:
            for cell in row.cells:
                cell.text = cell.text.replace(old_info,new_info)
wb = load_workbook('F:\桌面办公\办公文件\试验1.xlsx')
ws = wb.active
for row in range(2,ws.max_row+1):
    doc = Document('F:\桌面办公\办公文件\执行代理方案模板.docx')
    for col in range(1, ws.max_column+1):
      old_info=str(ws.cell(row=1, column=col).value)
      new_info=str(ws.cell(row=row, column=col).value)
      info_update(doc,old_info,new_info)
com_name=str(ws.cell(row=row, column=6).value)
doc.save(f'F:\桌面办公\办公文件\代理方案文本\{com_name}执行代理方案.docx')

水里有鱼 发表于 2021-12-13 13:53:31

已解决
没有批量的原因是最后两行缩进有问题。
页: [1]
查看完整版本: 根据Excel信息批量生成Word文件的程序只生成最后一行内容