利用docxtpl库将excel里的数据向一个word模板里填充数据,并保存为一个word文档

###程序功能说明:该功能是将excel里的数据向一个word模板里填充数据,并保存为一个word文档。
from docxtpl import DocxTemplate
import openpyxl

def main1():
      ###特别说明在填写路径时,要用到双\\,不能用文件属性里粘贴的单斜杠\路径,否则会报错
    sSourceFile = "C:\\Users\\16606\\Desktop\\cq\\21.xlsx"
    ##打开文件模板
    doc = DocxTemplate("C:\\Users\\16606\\Desktop\\cq\\mb.docx")
       #加载一个工作簿
    wb = openpyxl.load_workbook(sSourceFile)
    cun2=''
    cun2_num=''
    #打开指定表名称的工作表
    sh = wb['陈老七小学']
    #获得表单元里面的内容,row为行,column为列
    # name= sh.cell(row=1, column=1)
    ##获得单元内的值为name.value
    # print("name", name.value)
    for i in range(4,50):
        ###每循环一次,就要重新加载一次模板,否则生成doc的内容是一样的
        doc = DocxTemplate("C:\\Users\\16606\\Desktop\\cq\\mb.docx")
        name= sh.cell(row=i, column=2)
        sex= sh.cell(row=i, column=9)
        idcard= sh.cell(row=i, column=3)
        phone= sh.cell(row=i, column=4)
        cun1= sh.cell(row=i, column=10)
        print(cun1.value)
        for m in cun1.value:
            if m=="村":
                cun2=cun1.value[:cun1.value.index(m)]
                cun2_num=cun1.value[cun1.value.index(m)+1:]
                break

        ###创建字典形式
        context = {'name': name.value,
                   'sex': sex.value,
                   'Idcard2': idcard.value,
                   'phone': phone.value,
                   'cun': cun2,
                   'cun_num': cun2_num
                   }

        ###doc渲染
        doc.render(context)
        ###doc保存
        doc.save("C:\\Users\\16606\\Desktop\\cq\\21\\"+name.value+".docx")


if __name__ == "__main__":
    main1()

感谢众网友的分享:

https://www.sohu.com/a/375597136_797291

https://blog.csdn.net/yycoolsam/article/details/103255271 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 将Excel中的数据按照Word模板生成Word文档可以通过使用宏代码或者使用Python等编程语言来实现。 使用宏代码的方法是,首先打开ExcelWord软件,然后在Excel中选择需要导出到Word数据范围,点击开发工具栏中的"视图代码"按钮,将打开宏编辑器。在宏编辑器中,编写代码来读取Excel中的数据,并将数据插入到Word模板中的相应位置。最后保存并运行该宏,即可生成Word文档。 另一种方法是使用Python等编程语言来实现,首先需要安装相应的文件,如openpyxl和python-docx。然后在Python中编写代码,使用openpyxl读取Excel中的数据,并使用python-docx创建Word文档并将数据插入到文档中的相应位置。最后保存生成的Word文档。 无论是使用宏代码还是编程语言,都需要明确Excel数据的格式和Word模板的格式,并保存模板文件。在生成Word文档时,需要注意将数据插入到正确的位置,保持格式的一致性。通过这种方法,可以简化手动复制粘贴的过程,提高生成文档的效率,并确保数据的准确性。 ### 回答2: 将Excel中的数据按照Word模板生成Word文档可以通过使用VBA宏来实现。下面是具体的操作步骤: 1. 打开Excel文件并选择需要导入到Word中的数据。 2. 创建一个新的Word文档,并在文档中插入一个表格或者其他需要插入数据的位置。 3. 在Excel中,按下“ALT+F11”打开VBA编辑器。 4. 在VBA编辑器中,点击菜单栏中的“插入”,选择“模块”,添加一个新的模块。 5. 在新建的模块中编写VBA宏代码来实现将Excel数据导入到Word中的功能。可以使用Excel的对象模型来获取数据,使用Word的对象模型来进行文档的创建和修改。具体的代码可以查看相关的VBA编程教程和参考资料。 6. 完成VBA宏代码编写后,保存并关闭VBA编辑器。 7. 在Excel中选中需要导入的数据,运行刚刚编写的VBA宏。 8. VBA宏会自动将选中的数据按照Word模板生成Word文档保存在指定的路径下。 需要注意的是,需要提前准备好Word模板,并确保模板中的表格或其他需要导入数据的位置与VBA宏中的代码一致。另外,VBA宏中还可以进行格式化和样式设置等操作,以满足生成Word文档的需求。 ### 回答3: 将Excel中的数据按照Word模板生成Word文档可以通过编写代码来实现。 首先,需要使用编程语言(比如Python)来进行开发。一个常用的工具是使用Python中的openpyxl来读取Excel文件中的数据。可以逐行读取数据,并将其存储到相应的变量中。 接下来,需要使用Python中的python-docx来操作Word文档。可以先打开Word模板文件,然后通过指定的关键字(比如占位符)来定位需要填充数据的位置。 然后,将从Excel中读取到的数据逐个填充Word模板中的相应位置。可以使用python-docx提供的功能,比如paragraphs和tables,来插入表格、段落或文字。 最后,保存生成的Word文档文件。 这个过程中,可以添加一些附加的处理,比如格式化文本、插入图片等,以满足具体的需求。 总之,借助合适的编程语言和相关的帮助,我们可以将Excel中的数据按照Word模板的格式生成Word文档
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值