使用Python根据excel中数据批量生成word文件(word文件填空)

   有时候需要根据excel中的数据生成多个word文件,比如一行数据生成一个文件,这些文件大部分内容是一样的,只有个别地方不一样,像姓名、成绩等,传统方法是拷贝粘贴,但数据量大的话就太麻烦了,为此编程实现自动化。

    基本思想是建立一个word模板文件,输入固定的内容,包括文字、图片、页眉页脚等等。在需要填空的地方插入书签并记住书签名,存为模板文件,拷贝至指定目录,指定目录中同时还有excel数据文件。在同样的指定目录新建Python程序,程序打开excel文件,取数据,针对每一行数据,根据模板新建word文件,将数据填写到指定书签处,存盘。有多少行数据,则生成多少个word文件。

在 Python操作Office文件非常容易,需要安装第三方库pywin32,Anaconda已自带。

代码如下:

from win32com.client import Dispatch
from datetime import datetime
import os

zpath=os.getcwd()+'\\'
app = Dispatch('Word.Application')
#app.Visible = True
xlApp = Dispatch("Excel.Application")
#xlApp.Visible = True
xlBook = xlApp.Workbooks.Open(zpath+'成绩单.xlsx')

for i in range(10):
    name=xlBook.Worksheets('sheet1').Cells(i+2, 2).Value    
    cj1=str(xlBook.Worksheets('sheet1').Cells(i+2, 3).Value)
    cj2=str(xlBook.Worksheets('sheet1').Cells(i+2, 4).Value)
    cj3=str(xlBook.Worksheets('sheet1').Cells(i+2, 5).Value)
#    print(name,cj1,cj2,cj3)
    doc = app.Documents.Add(zpath+'模板z.dotx')
    doc.Bookmarks("sq_name1").Range.Text = name
    doc.Bookmarks("sq_name2").Range.Text = name
    doc.Bookmarks("sq_1").Range.Text = cj1
    doc.Bookmarks("sq_2").Range.Text = cj2
    doc.Bookmarks("sq_3").Range.Text = cj3
    doc.Bookmarks("sq_date").Range.Text = "{0:%Y}年{0:%m}月{0:%d}日".format(datetime.now())
    doc.SaveAs(zpath+'成绩通知书_'+name+'.docx')   
    app.Documents.Close()

app.Quit()
xlBook.Close()
xlApp.Quit()
print("运行结束!!")

 

word默认不显示书签,可在 “文件”-“选项”-“高级”-“显示文档内容”项选中“显示书签”,之后插入书签,保存为模板文件

模板文件设置了6个书签

excel数据文件,10行数据

运行结果:

打包编译好的程序下载为:https://download.csdn.net/download/zw010101/12417691,电脑无需安装python即可运行(双击word_3.exe),自动生成10个Word文件。

使用其他计算机语言同样可以实现该功能,如VBA,c#,java等,原理相同。

  • 12
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
Python可以使用Openpyxl库读取和处理Excel数据使用python-docx库创建和操作Word文档。 要将Excel数据插入Word模板生成详细内容文档,我们需要以下步骤: 1. 使用Openpyxl库打开Excel文件,并选择要读取的工作表。 2. 使用Openpyxl库的方法读取Excel数据,并保存到一个变量。 3. 使用python-docx库创建一个新的Word文档,并选择要操作的文档元素(如段落、表格等)。 4. 根据Word模板的需求,在相应的位置插入Excel数据。可以使用python-docx库提供的方法在文档添加段落、表格和图片。 5. 使用python-docx库的保存方法,将生成Word文档保存到指定位置。 下面是一个示例代码,演示了如何将Excel数据插入Word模板生成详细内容文档: ```python from openpyxl import load_workbook from docx import Document # 打开Excel文件和选择工作表 workbook = load_workbook('data.xlsx') sheet = workbook['Sheet1'] # 创建一个新的Word文档 doc = Document() # 读取Excel数据并将其插入到Word文档 for row in sheet.iter_rows(values_only=True): # 在Word文档插入段落,显示Excel数据 doc.add_paragraph(f"姓名:{row[0]}") doc.add_paragraph(f"年龄:{row[1]}") doc.add_paragraph(f"性别:{row[2]}") doc.add_paragraph("") # 保存生成Word文档 doc.save('output.docx') ``` 这样,我们就可以通过读取Excel数据并将其插入Word模板来生成详细内容文档。记得安装和导入相应的库,以及根据实际需求修改代码,比如根据模板的样式信息设置Word文档的格式。
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值