>>> from env_helper import info; info()
页面更新时间: 2024-04-04 19:47:16
运行环境:
Linux发行版本: Debian GNU/Linux 12 (bookworm)
操作系统内核: Linux-6.1.0-18-amd64-x86_64-with-glibc2.36
Python版本: 3.11.2
2.1. DOCX 文档格式介绍¶
办公软件中电子文档的格式有很多。最常用的就是微软 Word 软件支持的 DOC / DOCX 格式的文档。其他还有 OpenOffice 的 ODT 文件格式,以及 RTF 富文本文件格式,以及诸多其他软件支持的文件格式。
在这些文件格式中, DOCX 文件格式由于其应用的广泛性以及格式的开放性得到了 Python 最好的支持。所以这一章只针对 Python 对 DOCX 格式的读写与处理进行说明。
2.1.1. DOCX 文档的组成¶
DOCX 是微软 Word 的文件扩展名,Microsoft Office2007之后版本使用, 其基于Office Open XML标准的压缩文件格式取代了其以前专有的默认文件格式, 在传统的文件名扩展名后面添加了字母“x”(即“.docx”取代“.doc”、“.xlsx”取代“.xls”、“.pptx”取代“.ppt”)。 任何能够打开DOC文件的文字处理软件都可以将该文档转换为DOCX文件, docx文件比doc文件所占用空间更小,是一个ZIP文件。
DOCX 文件是一个压缩文件,解压后有一个 [Content_Types].xml
和包含其他信息的 _rels
, customXml
, docProps
, word
文件夹, 主要文字内容保存为 XML 格式, 其中的 document.xml
文件则包含了文档的主要文本内容,
在解压后的文件夹内,包含了文档的所有内容,主要包括:
[Content_Types].xml
每个包都必须有一个 [Content Types].xml
,位于包的根目录下。
此文件包含包中部件的所有内容类型的列表。每个部件及其类型都必须列在
[Content_Types].xml
中。
_rels
文件夹
每个包都包含一个关系部分,它定义了其他部分之间的关系以及与包外部资源的关系。 这将关系从内容中分离出来,并且可以在不更改引用目标的源的情况下轻松地更改关系。
media 插入的图片
theme 文件夹
xml 文字、格式、信息等。
2.1.2. DOCX 文档格式的特点¶
开放文档格式
在信息技术领域,开源、开放、共享已经得到越来越多的认可。 微软 Word 软件支持的 DOC 文档格式得到了广泛的应用, 但是其专有文档格式也受到诸多诟病; DOCX 是微软推出的开放文档格式,也对外表现了其支持开源、开放的态度。 新的格式更容易在各个平台被解析。
docx文件比doc文件所占用空间更小。
docx格式的文件本质上是一个ZIP文件。将一个docx文件的后缀改为ZIP后是可以用解压工具打开或是解压的。
易修复
二进制文档一旦损坏很难修复,XML 格式比较健壮,损坏后容易修复。
安全性更强
优化了加密。
2.1.3. Docx 文档中的对象¶
DOCX 主档的组成部分可以主要分为以下的几个类别:
文件对象
与样式相关的对象
文字相关对象
表对象
块对象
与形状相关对象
DrawingML对象
在所有 Office 应用程序中,Microsoft Word 可能是应用最广泛的应用程序, 它还经常在自定义 Office 解决方案中扮演重要的角色。 开发人员用各种不同的方式使用 Word,有一些方式很简单,而另一些极其复杂。
在 Word 中,几乎所有的操作都要调用 Document 对象本身或其内容。 当您用 VBA 操作 Word 时,Document 对象表示一个打开的文档,而且所有的 Document 对象都是 Application 对象的 Documents 集合的成员。
文档是一个由字符、单词、句子和段落组成的集合,字符组成单词,单词组成句子,句子组成段落,等等。因此,每一个 Document 对象都具有 Characters、Words、Sentences 和 Paragraghs 四个集合。此外,每个文档具有一个包含一个或多个节的 Sections 集合,每一个节都有一个包含该节页眉和页脚的 HeadersFooters 集合。
2.1.4. Python处理DOCX的模块¶
目前已经出现了很多使用Python处理的Docx文档的库,他们的性能和功能都很优异,常用的库有以下几个:
``python-docx`` 模块
在 DOCX 文档中,主要有以下几种组成部分:
标题
Page_break
段落
图片
节( Section )
表格
另外,还有样式对象。
进一步地,还有作者、创建日期、修改时间等文档的属性。
Open XML格式提供了与每个文档一起维护的一组描述性属性。其中之一是核心文件属性。核心属性是所有Open XML格式所共有的,并出现在文档,演示文稿和电子表格文件中。核心文档属性中的“核心”指的是 Dublin Core,元数据标准定义了一组核心元素来描述资源。
``Random-Word`` 模块
``python-docx-template`` 模块
除了上面的模块,还可以使用 pywin32
(仅限于Windows) 模块来调用 Word
软件进行文档处理。
新技术的更新迭代是非常快的,可能过一段时间就出现的更为好用的库,但是使用以上的库依然可以帮助你解决大多数的问题。