精华内容
下载资源
问答
  • python将excel写入word
    千次阅读
    2021-06-02 23:00:11

    Python 读取excel及批量生成word模板

    问题-来源

    前几天,我姐遇见了一个难题:需要从excel表格中不断复制数据到word模板中,相当繁琐,询问我有没有解决的办法。于是我百度了一下,借鉴了相关博主的博文,结合自己的需求,最终解决了该问题。特在此记录一下。

    问题-困难

    问题1:一直无法导入docxptl库,一直尝试仍无法解决。直到第二天,下定决心下载最新版本的python,该问题解决。
    问题2:读取excel的xlrd一直读取不了我的数据源,多次百度最终寻得解决办法:因为我的表格是以xlsx结尾的,1.2.0之后的xlrd库版本只能读取xls结尾的表格,所以,我在pycharm中下载的xlrd库版本为1.2.0,该问题解决。

    问题-代码解决

    word模板需要用{{}}进行占位,具体 如下图所示:
    在这里插入图片描述

    以下是源码:

    # coding:<encoding name> : # coding: utf-8
    import xlrd
    from docxtpl import DocxTemplate
    
    
    def main():
        data = xlrd.open_workbook(r'C:\Users\22815\Desktop\打印\数据表.xlsx')
        for x in range(0, 1):#这儿可以循环多张表
            print(x)
            table = data.sheets()[x]
            names = data.sheet_names()[x]  # 获取表名
            nrows = table.nrows
            print(names)
    
            for i in range(nrows):
                name = table.row_values(i)[0]  # 姓名
                idCard = table.row_values(i)[3]  # 身份证
                smallMoney = table.row_values(i)[1]  # 金额小写
                bigMoney = table.row_values(i)[2]  # 金额大写
                month = table.row_values(i)[5]  # 月份
                day = table.row_values(i)[6]  # 天
                SMoney = str(smallMoney).replace(".0", "")#上面的数据打印出来会有.0,但是我们不需要,所以剔除。
                SMonth = str(month).replace(".0", "")
                Sday = str(day).replace(".0", "")
                context = {
                    "name": name,  # 姓名
                    "idCard": idCard,  # 身份证号码
                    "smallMoney": SMoney,  # 金额小写
                    "bigMoney": bigMoney,  # 金额大写
                    "month": SMonth,  # 月
                    "day": Sday  # 天
                }
                word = DocxTemplate(r'C:\Users\22815\Desktop\打印\个人工资结清承诺书.docx')
                print(context)
                word.render(context)
                word.save(names + "-" + "{}".format(name) + ".docx")
            print("保存成功")
    
    
    if __name__ == '__main__':
        main()
    
    

    问题-总结

    以上便是关于该问题的解决代码,仍有许多完善之处:如保存路径和目录的生成等,仍需继续改进。
    新手小白,刚上路,有许多知识不清楚,还望大家多多指点一下我,谢谢啦。

    更多相关内容
  • windows下,使用python 将Excel中数据批量导出到Word模板中生成新的文件
  • 【项目需求】Excel中有一万多条学生学平险数据,需要给每位学生打印购买回执单,回执单包括学生姓名,身份证号,学校等信息,目前只能从Excel拷贝数据到Word模板中,然后打印,效率及其低下,寻求帮助。【解决方案】...

    【项目需求】

    Excel中有一万多条学生学平险数据,需要给每位学生打印购买回执单,回执单包括学生姓名,身份证号,学校等信息,目前只能从Excel拷贝数据到Word模板中,然后打印,效率及其低下,寻求帮助。

    【解决方案】

    1、设计Word模板。

    2、读取Excel中的数据,并按Word模板生成Word文件。

    3、使用批量打印软件进行批量打印。

    关键需要解决word模板如何设计,像数据一样,定义好字段,后期能插入数据填充字段

    【实现方案】

    【设计Word模板】

    1、设计Word模板

    通过Word插入-文本-域,插入需要填充的域。

    插入域

    字段名称可以根据需要录入

    字段名称

    设计好的模板如下,《》的位置为域的位置,也可以理解为占位符,可以根据需要调整域的字体及位置。

    设计好的模板

    2、读取Excel中的数据,并按Word模板生成Word文件:

    使用的包为docx-mailmerge,具体用法可以参考官方文档。

    具体代码如下

    import os

    import xlrd

    from mailmerge import MailMerge

    # 生成Word文档存储目录

    path_base_name = r'D:\\info\\'

    # 遍历当前目录下的所有文档,读取类型为Excel文件

    for maindir, subdir, file_name_list in os.walk(os.getcwd()):

    for f in file_name_list:

    if os.path.splitext(f)[1] == '.xlsx' or os.path.splitext(f)[1] == '.xls':

    print(f)

    # 打开Excel文件

    xl = xlrd.open_workbook(os.path.join(maindir, f))

    print(xl.sheet_names())

    # 读取第一个表

    table = xl.sheet_by_name(xl.sheet_names()[0])

    # 获取表中行数

    nrows = table.nrows

    for i in range(nrows): # 循环逐行打印

    if i > 0: # 第一行为表头,不作为填充数据

    print(str(table.row_values(i)[0])+" "+" "+str(table.row_values(i)[1])+" "+str(table.row_values(i)[2])+" "+str(table.row_values(i)[3]))

    doc = MailMerge(r'D:\pythoncode\word\mode.docx') # 打开模板文件

    # 以下为填充模板中对应的域,

    doc.merge(school=str(table.row_values(i)[2]),

    s_id=str(table.row_values(i)[1]),

    name=str(table.row_values(i)[0]),

    cls=str(table.row_values(i)[3])

    )

    # 使用文件名,学校,班级生成文件夹,并把学生按学校,班级进行分类存储

    path_name = os.path.join(path_base_name, str(os.path.splitext(f)[0]), str(table.row_values(i)[2]), str(table.row_values(i)[3]))

    if not os.path.exists(path_name):

    os.makedirs(path_name)

    os.chdir(path_name)

    word_name = table.row_values(i)[0] + '.docx'

    print("正在保存 " + word_name + " 到 " + path_name)

    doc.write(word_name)

    print("保存成功\n")

    if doc is None:

    doc.close()

    os.chdir(path_name)

    word_name = table.row_values(i)[0] + '.docx'

    print("正在保存 "+word_name+" 到 "+path_name)

    doc.write(word_name)

    print("保存成功\n")

    if doc is None:

    doc.close()

    填充好的模板

    3、批量打印

    这样就可以通过批量打印软件一次打印一个班,一万多份模板生成就是一瞬间的事,技术就是生产力。

    展开全文
  • Pythonexcel里面获取数据写入word

    千次阅读 2021-07-07 16:26:27
    需求从excel里面写入word数据 实现,首先各自连接到对应的表格: 通过循环遍历确保所传入数据的正确性,用if判断表头: 最终实现写入

    需求从excel里面写入word数据

    实现,首先各自连接到对应的表格:

    通过循环遍历确保所传入数据的正确性,用if判断表头:

    最终实现写入

    展开全文
  • 代码用于读Excel中的数据,然后批量写进word,文件的读写有专门的类,对于批量处理excel很有帮助
  • python快速将excel表格规范导入word

    千次阅读 2020-09-12 16:56:42
    python快速将excel表格规范导入word前言二、开发环境三、实现步骤1.引入库2.代码片段 前言 最近接到一个需求,公司的统计需要一个excelword的工具,每天她都要人工复制粘贴excel中的表格到Word合同中,而且粘贴后...

    提示:快速将excel表格规范导入word

    python快速将excel表格规范导入word


    前言

    最近接到一个需求,公司的统计需要一个excel转word的工具,每天她都要人工复制粘贴excel中的表格到Word合同中,而且粘贴后的样式及字体和表头每页都需要调整,一天要是粘贴数百页的文本的话,人都要崩溃了。为了安抚妹子,主管找我写个小软件,一键要将将数百页excel转化为word,为他讨好妹子,就写了一个小工具,几十秒中就完成了妹子几天的工作,现在妹子担心的是公司还要不要她…


    在这里插入图片描述

    二、开发环境

    Python 3.8
    开发工具:pycharm 2020.1

    三、实现步骤

    1.引入库

    代码如下(示例):

    import openpyxl.utils
    from openpyxl import Workbook
    from random import choice
    from docx import Document
    from docx.enum.style import WD_STYLE_TYPE
    import xlrd
    import os
    import copy
    from docx.shared import Cm,Pt,RGBColor
    from docx.enum.table import WD_ALIGN_VERTICAL
    from docx.enum.text import WD_ALIGN_PARAGRAPH
    

    2.代码片段

    代码如下(示例):

    if __name__ == '__main__':
        #合同标签数据
        excelfile = r'D:\pythontest\execltoword\清单4安装清单.xlsx'
        #合同模板
        wordfile= r'D:\pythontest\execltoword\电气模板.docx'
        opword = OptionWord(wordfile,excelfile,'电气')
        opword.CreateWord()
    

    如需观看完整代码及获取源代码文件,请关注公众号(Jack的Python小课堂)后,观看文章excel表格按样式及格式转为word的表格(分页适用)


    展开全文
  • Python将Word中的内容写入Excel
  • 前言本人python零基础,但是听说Java直接读取excel和直接操作word比较麻烦,所以最近在学习Java调用python脚本进行excelword的操作。本人没有下载python的其他编译器,因为它自带有一个编译器,虽然不是很好用。我...
  • 这个写的很简单,比之前上传的那个vba的简单,逻辑如下,给定目录,遍历所有doc转换成docx,然后循环读取所有docx里的第一个表格,进行重复值筛选,然后写入excel里,用到了几个模块,需要提前导入
  • 参考文档: 1.https://docxtpl.readthedocs.io/en/latest/ 2.Python将Excel数据自动填写到Word https://blog.csdn.net/weixin_42529806/article/details/105671886
  • 今天小编就为大家分享一篇利用pythonExcel中的特定数据提取并写入新表的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 在工作中可能需要两者对...3、将excel文档数据写入word表格对应的位置;4、循环需要用到的模块创建表格,由于我需要的表格需要进行合并处理,所以使用merge合并单元格接下来,读取excel文档数据然后,将excel数据...
  • 需要提前安装第三方库,分别为:python-docx,xlrd。 在运行中输入 cmd 进入命令控制 安装方法:pip install python-docx pip install xlrd 输入pip list,查看是否安装成功 `` from docx import Document import ...
  • 1.网上看到:其中包括,Python中,如何读取excel文件,如何写入数据到excel文件等等相关的库。看起来应该是这方面的资料中,总结的最好的了.2.此处暂时只需要写入数据到Excel,所以就去参考:去看看示例代码:貌似用...
  • python3中从excelword的数据传输

    千次阅读 2020-12-12 12:31:09
    只是为了展示您使用pandas的示例性功能:import pandas as pddf = pd.read_csv('whereverfilemayroam/filename')Participant ID Breakfasts Lunches/dinners Snacks0 1111 Full english Risotto Granol...
  • 一、需求目标 毫无疑问,Microsoft ExcelWord是企业和非公司界使用最丰富的两种软件。...事实上,有一种方法可以在Python中创建一个管道,在那里您可以无缝集成两者,在Excel中生成电子表格,然后结果传输到Word
  • 实现将word内容按一定规律和方式写入excel 可用于提取word关键信息,在excel直观显示
  • python自动化办公(五)实现读取的excel数据写到word指定的地方:示例(劳动合同)一、相关库的下载二、excelword模板事先准备三、代码实现 一、相关库的下载 pip install docxtpl pip install openpyxl 二、...
  • 以往企业在写年报报表的时候,都需要现在Excel表格中汇总好多数据表格,如何再把每个表格区域复制粘贴到Word当中,最后再把Word转换成PDF公布在各大需求平台,那该如何实现呢? 下面我们拭目以待~~~ ...
  • python word自动写入模板 搭配博客内容使用 后续会持续更新excel,ppt,爬虫,人工智能等相关内容,敬请关注
  • 今天小编就为大家分享一篇Python读取Excel表格,并同时画折线图和柱状图的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 需求描述:将excel文件中的每条成绩信息按照要求格式转换到word每页中,一条对应一页。(如图一到图二的转换),python可以实现,但实现起来比较繁琐,而且转换效率比较低。本人亲测了一下,80条数据的excel转换到...
  • from tkinter import Tk from time import sleep from tkinter.messagebox import showwarning import win32com.client as win32 warn=lambda app:showwarning(app,'Exit?') ...RANGE=range(3,8) ...def excel(): ...
  • Excel转换任意格式Word1、引言小屌丝:鱼哥,有一事相求?小鱼:何事,说来听听!小屌丝:BOSS让我把exce转成word, 小鱼:这还不简单,你直接修改文件后缀名不就行了。小屌丝:你可以伤害我,但是不能侮辱我… 小鱼...
  • Python将Excel数据自动填充到Word指定位置中

    万次阅读 多人点赞 2020-09-23 22:23:01
    目录Python将Excel数据自动填写到Word需求实现 Python将Excel数据自动填写到Word 需求 需求:批量制作档案表,要从excel表格中将每个人的数据导入到docx档案中,重复量很大,因此可以使用python高效解决。 渲染:...
  • 求大佬救命 比如数据: 名字 年龄 成绩 a 11 33 b 12 44 c 13 55 按名字分成多个word或txt文件 </p>
  • 在前几天的文章中我们讲解了如何从Word表格中提取指定数据并按照格式保存到Excel中,今天我们再次以一位读者提出的真实需求来讲解如何使用PythonExcel中计算、整理数据并写入Word中,其实并不难,主要就是以下两...
  • Python操作WordExcel、PPT、PDF\、复杂文件、通信软件(微信、邮件、飞书、钉钉)、图片 目录   章节一:python使用openpyxl操作excel     1、openpyxl库介绍     2、python怎么打开及读取表格内容? ...
  • 最近在实际工作中遇到的一...Python有个叫做docx-mailmerge的包,它的作用简单可以理解成替换指定内容,更复杂的工作内容还没有涉及,以后遇到了再补充。如何安装?pip install docx-mailmerge怎么在word中设置域,...
  • [Python] 纯文本查看 复制代码from PIL import ImageGrab, Image #pip pillowimport docxfrom docx.shared import Inchesfrom docx import Documentimport timeimport win32...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,502
精华内容 1,800
关键字:

python将excel写入word