返回顶部
首页 > 资讯 > 后端开发 > Python >python操作docx文档
  • 347
分享到

python操作docx文档

操作文档python 2023-01-31 06:01:32 347人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

在2017年暑假绿盟实习期间,部门做的一个项目需要用到docx格式的Word文档模板操作,现在有如下记录:      关于python操作docx格式文档,我用到了两个Python包,一个便是python-docx包,另一个便是pyth


在2017年暑假绿盟实习期间,部门做的一个项目需要用到docx格式的Word文档模板操作,现在有如下记录:

     关于python操作docx格式文档,我用到了两个Python包,一个便是python-docx包,另一个便是python-docx-template;,同时我也用到了很出名的一个工具"pandoc,下面我会对他们各自进行介绍。

  1.     首先便是python-docx包,这是一个很强大的包,可以用来创建docx文档,包含段落、分页符、表格、图片、标题、样式等几乎所有的word文档中能常用的功能都包含了,这个包的主要功能便是用来创建文档,相对来说用来修改功能不是很强大,关于文档请查看他的"官网;

  2. 再然后便是python-docx-template这个包了,他可以用来对docx文档进行修改,诸如对文档中的 文本、图片、富文本、等几乎所有存在与文档中的他都能替换,而且他操作起来就如同很多WEB框架中的模板语言一样,因为他是和jinjia2模板语言结合使用的,所以最好希望使用之前对模板语言有一定了解;

  3. 关于pandoc,这个包在许多需要进行文本转换的地方用处很强大,他可以把许多如今存在的文档格式转换问另一种文档格式,如htmlmarkdown、docbook、latex、docx等转换为xml、latex、markdown、pdf,总之很强大,这是官网,有兴趣的可以去了解下。

下面便会相应介绍他们各自的大概的用法。还是按照上面的顺序进行介绍,大笑

  • 关于python-docx这个包我觉得最好还是引用他官网的一段代码解释最为合适了,因为这里面基本情况都被包含了,

from docx import Document
from docx.shared import Inches

document = Document()  # 首先这是包的主要接口,这应该是利用的设计模式的一种,用来创建docx文档,里面也可以包含文档路径(d:\\2.docx)

document.add_heading('Document Title', 0)  # 这里是给文档添加一个标题,0表示 样式为title,1则为忽略,其他则是Heading{level},具体可以去官网查;

p = document.add_paragraph('A plain paragraph having some ') # 这里是添加一个段落
p.add_run('bold').bold = True   # 这里是在这个段落p里文字some后面添加bold字符
p.add_run(' and some ')
p.add_run('italic.').italic = True

document.add_heading('Heading, level 1', level=1)   # 这里是添加标题1
document.add_paragraph('Intense quote', style='IntenseQuote') # 这里是添加段落,style后面则是样式

document.add_paragraph(
    'first item in unordered list', style='ListBullet'    # 添加段落,样式为unordered list类型
)
document.add_paragraph(
    'first item in ordered list', style='ListNumber'    # 添加段落,样式为ordered list数字类型
)

document.add_picture('monty-truth.png', width=Inches(1.25))  # 添加图片

table = document.add_table(rows=1, cols=3)   # 添加一个表格,每行三列
hdr_cells = table.rows[0].cells   # 表格第一行的所含有的所有列数
hdr_cells[0].text = 'Qty'    # 第一行的第一列,给这行里面添加文字
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for item in recordset:
    row_cells = table.add_row().cells   # 这是在这个表格第一行 (称作最后一行更好) 下面再添加新的一行
    row_cells[0].text = str(item.qty)
    row_cells[1].text = str(item.id)
    row_cells[2].text = item.desc
 
document.add_page_break()    # 添加分页符

document.save('demo.docx')  # 保存这个文档

具体样式请看:

关于更多细节希望大家还是去他的官网python-docx;看,介绍的还是很详细

  • 然后便是python-docx-template包了,他用起来就向python中的模板语言一样,有上下文,有模板,然后进行变量的替换

关于python-docx-template,他的官网名称便是“像jinjia2一样来操作docx文档”,因此这个包对于用来进行文档修改时很强大的下面是一个简单例子:

from docxtpl import DocxTemplate

doc = DocxTemplate("1.docx")  # 对要操作的docx文档进行初始化
context = { 'company_name' : "World company" }   # company_name 是存在于1.docx文档里面的变量,就像这样{{company_name}},直接放在1.docx文件的明确位置就行
doc.render(context)   # 这里是有jinjia2的模板语言进行变量的替换,然后便可以在1.docx文档里面看到{{company_name}}变成了World company
doc.save("generated_doc.docx")   # 保存

当然,这个包的功能远远不止上面例子中的一些,可以包含图片

myimage = InlineImage(doc,'test_files/python_loGo.png',width=Mm(20)) # tpl便是上面例子中的doc对象

也可以包含另一个docx文档,
sub = doc.new_subdoc()
sub.subdocx = Document('d:\\2.docx')
doc.render({'sub': sub})
这里操作之后便可以把2.docx文件里面的内容直接插入到doc对象(也就是1.docx)文档中{{sub}}这个变量处,被替换为2.docx中的,基本上用到的都是这两个部分,

关于更多的特性,可以访问官网的example,里面涵盖了几乎所有的特性,地址是https://GitHub.com/elapouya/python-docx-template/tree/master/tests

  • 最后便是pandoc了,我在这次用到的功能主要是,用来把html文件直接转换为markdow格式文件,然后再转换为txt文件,最后将txt文件内容和格式一同插入到docx文档中,当然,也可以直接把html文件转换为docx文件,格式基本一致


这是用到的命令,而由于使用pandoc是在控制台下cmd或者shell使用的,因此要用到python的另一个包subprocess

import subprocess
subprocess.call('pandoc --latex-engine=xelatex temp.html -o temp.text', cwd='d:\\python', shell=True)
subprocess.call('pandoc --latex-engine=xelatex temp.text -o t1.text', cwd='d:\\python', shell=True)
或者
subprocess.call('pandoc temp.html -o temp.docx', cwd='d:\\python', shell=True)
首先里面的cwd参数设置后,会把这个命令执行环境调到cwd所设置的参数路径处,就如同执行命令前,如同先执行了 cd d:\\python命令一样,shell=True相当于新开了一个shell或者cmd控制台,而关于更多例子,可以去官网的在线转换器Https://pandoc.org/try/ 或者官网的例子https://pandoc.org/demos.html

  • 还有一个问题,若使用过程中,出现打开docx文档报错,那么极有可能便是初始化模板格式错误,因此需要替换一个新的初始化模板

好了,主要便是这些了,谢谢查看!吐舌头

--结束END--

本文标题: python操作docx文档

本文链接: https://lsjlt.com/news/190248.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python操作docx文档
    在2017年暑假绿盟实习期间,部门做的一个项目需要用到docx格式的word文档模板操作,现在有如下记录:      关于python操作docx格式文档,我用到了两个python包,一个便是python-docx包,另一个便是pyth...
    99+
    2023-01-31
    操作 文档 python
  • python之python-docx:操作 office word 文档
    在Python中,有一个名为python-docx的库,它提供了丰富的功能,可以方便地创建、修改和读取Word文档。 本文将详细介绍python-docx库的使用,并提供一些示例来演示其中的功能。为了更好地理解,我们将分为以下几个方面进行讨...
    99+
    2023-08-31
    c# 开发语言 word
  • 如何使用python docx模块操作word文档
    目录引言打开文档正文应用字符样式(字体,大小,颜色)添加标题操作段落添加段落删除段落替换文字设置段落对齐方式字体格式添加分页符添加表添加图片图像大小应用段落样式应用粗体和斜体应用字符...
    99+
    2024-04-02
  • python-docx操作word文件(
    目录 基础操作 对象关系 添加样式 中文字体微软雅黑,西文字体Times New Roman 首行缩进 ...
    99+
    2023-01-31
    操作 文件 python
  • Python操作Word文档docx的常用方法有哪些
    这篇文章主要介绍Python操作Word文档docx的常用方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!安装docx是一个非标准库,需要在命令行(终端)中使用pip即可安装...
    99+
    2024-04-02
  • python 操作 doc /docx
    对于python来说操作 doc    需要用到win32com      安装   pip  install  win32com      优点 doc所有的操作都可以执行     缺点 如果没有office就死翘翘了 当然也可以com...
    99+
    2023-01-31
    操作 python docx
  • Python-docx:读写word文档
    1 Python DocX目前是Python OpenXML的一部分,你可以用它打开Word 2007及以后的文档,而用它保存的文档可以在Microsoft Office 2007/2010, Microsof...
    99+
    2023-01-31
    文档 Python docx
  • Python 读取 Word 文档操作
    目录前言Python 读取 Word 文档安装 python-docx库前言 Word 文档 (.docx) 是另一种主要用于存储文本的常见文档。它们通常由 Mi...
    99+
    2024-04-02
  • Python中怎么对docx文件进行读写操作
    这期内容当中小编将会给大家带来有关Python中怎么对docx文件进行读写操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。演示文本为了方便理解,我们以 python-docx.docx 文件为例,演示如...
    99+
    2023-06-16
  • Python将数据渲染到docx文档指定
    超简单Python将指定数据插入到docx模板渲染并生成 最近有一个需求,制作劳动合同表,要从excel表格中将每个人的数据导入到docx劳动合同中,重复量很大,因此可以使用python高效解决。为了让模板内容不变动,这里使用了类似jin...
    99+
    2023-01-30
    文档 数据 Python
  • python中使用docx模块处理word文档
    目录一.docx模块二.相关概念三.模块的安装和导入四.读取word文本一.docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是...
    99+
    2023-01-05
    python docx模块 python处理word文档 用Python操作Word文档
  • ssdb操作文档
    # 启动为后台进程(不阻塞命令行)./ssdb-server -d ssdb.conf# 重启./ssdb-server -d ./ssdb.conf -s restart#关闭数据库 ./ssdb-ser...
    99+
    2024-04-02
  • Python利用docx模块实现快速操作word文件
    目录一、基础内容1. 基本概念2. 操作word文档二、单独设置内容样式1. 字体相关样式三、样式演示四、制作表格1. 表格2.行列对象3. 单元格对象一、基础内容 安装第三方库的时...
    99+
    2024-04-02
  • MongoDB文档操作(5)
    添加文档 语法: db.集合名.insert({k1:"v1", k2:"v2"....}) 注意: (1)文档就是键值对,数据类型是BSON格式,支持的值更加丰富。 比如:db.集合名.insert({name:"bashlo...
    99+
    2020-01-10
    MongoDB文档操作(5)
  • Python操作word文档的示例详解
    目录写在前面创建一个文档先实现第一步,写入一个标题添加文字段落列表的添加图片的添加表格添加相关样式设置页眉和页脚写在前面 python-docx 不支持 doc 文档,一定要注意该点...
    99+
    2024-04-02
  • 使用MongoDB操作文档
    目录一、插入文档1、使用insert()方法插入文档2、使用save()方法插入文档二、查询文档1、语法2、实例3、MongoDB AND条件查询4、MongoDB OR 条件查询三...
    99+
    2024-04-02
  • python之PyPDF2:操作PDF文档示例详解
    PyPDF2是一个用于处理PDF文档的Python库。它提供了一系列的功能,使我们能够读取、修改和创建PDF文件。本文将详细介绍PyPDF2库的使用示例,包括读取文档信息、提取文本内容、合并和拆分文档以及添加水印等操作。 首先,我们需要安装...
    99+
    2023-09-02
    python 数据库 开发语言 pip
  • Python中怎么操作MongoDB文档数据库
    Python中怎么操作MongoDB文档数据库,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.Pymongo 安装安装pymongo:pip install&nbs...
    99+
    2023-06-02
  • kvm介绍与操作文档
    --虚拟化KVM  (kernel-based virtual machine)xen   kvm    vmare esx      ...
    99+
    2024-04-02
  • MongoDB基础之文档操作
    一、插入文档 文档的数据结构和 JSON 基本一样。 所有存储在集合中的数据都是 BSON 格式。BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作