当前位置: 首页 > news >正文

企业网站开发主要职责北京网站制作很好 乐云践新

企业网站开发主要职责,北京网站制作很好 乐云践新,博物馆文化网站建设,进入公众号继续阅读怎么弄python如何解析word文件格式(.docx) .docx文件遵从开源的“Office Open XML标准”,这意味着我们能用python的文本操作对它进行操作(实际上PPT和Excel也是)。而且这并不是重复造轮子,因为市面上操作.docx的…

python如何解析word文件格式(.docx)

.docx文件遵从开源的“Office Open XML标准”,这意味着我们能用python的文本操作对它进行操作(实际上PPT和Excel也是)。而且这并不是重复造轮子,因为市面上操作.docx的库限制性非常强:

  • python-docx是开源的,但不支持高级操作,例如增加批注、修订等。
  • spire.doc支持高级操作,但需要商业许可
  • 微软开放了word的api接口,但不是跨平台的。只支持win平台,且学习门槛较高

所以我们从开源的标准入手,用python实现操作word文件的功能。


看下图,把.docx文件的后缀手动改为.zip竟然可以直接解压。原来.docx本质上是一个zip压缩包。

请添加图片描述

解压后的word文件漏出了他的真实面目。原来.docx由很多.xml文件(及其他)组成。注意下图框出的word/document.xml,他是我们操作word文件的主角(有些高级功能不在其中,比如批注在另外的xml中)。因为其中记录了word文档的文本、字体、段落格式等。.xml是一个纯文本文件,理论上我们用python可以操作word/document.xml中定义的任何元素。

请添加图片描述

解释一下.xml格式:你可以粗略的把它理解为.html。区别在于.html的标记是预先定义好的,.xml的标记由架构或文档的作者定义,并且是无限制的。如果你没有接触过的话,我建议百度一下,有助于理解下面的内容。

我举个例子来看一下word/document.xml的结构,具体的含义写在注释里了:

<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">  # 注意这行,下文要用到!<w:body>  # body是文档的主体,是个nodelist,一般只有一个元素<w:p w:rsidR="00F921A6" w:rsidRDefault="00000000">  # p代表paragraph段落<w:pPr>  # pPr是段落属性<w:numPr><w:ilvl w:val="255"/><w:numId w:val="0"/></w:numPr><w:pBdr>  # 段落边框<w:top w:val="none" w:sz="0" w:space="0" w:color="000000"/><w:left w:val="none" w:sz="0" w:space="0" w:color="000000"/><w:bottom w:val="none" w:sz="0" w:space="7" w:color="000000"/><w:right w:val="none" w:sz="0" w:space="0" w:color="000000"/></w:pBdr><w:widowControl/>  # 控制孤行<w:spacing w:line="560" w:lineRule="exact"/>  # 行间距<w:ind w:firstLineChars="200" w:firstLine="640"/>  # 首行缩进<w:outlineLvl w:val="1"/>  # 标题级别<w:rPr>  # rPr是段落内的文本属性<w:rFonts w:ascii="方正仿宋_GBK" w:eastAsia="方正仿宋_GBK" w:hAnsi="Times New Roman"/><w:kern w:val="0"/><w:sz w:val="32"/><w:szCs w:val="32"/></w:rPr></w:pPr><w:r>  # r代表run,可以理解为连续的文本块<w:rPr>  # rPr是文本属性<w:rFonts w:ascii="方正楷体_GBK" w:eastAsia="方正楷体_GBK" w:hAnsi="Times New Roman" w:hint="eastAsia"/>  # 字体<w:kern w:val="0"/>  # 字间距<w:sz w:val="32"/>  # 字号<w:szCs w:val="32"/>  # 字号?不知道</w:rPr><w:t>这是一段word中的文本</w:t>  # t是文本</w:r></w:p></w:body>
</w:document>

注意看上面xml的第一行,xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"定义了document及其子元素的命名空间。xmlns用来声明属性,比如这里xmlns:w代表绑定了w为前缀,那么子元素中所有前缀为w的都绑定到命名空间"http://schemas.openxmlformats.org/wordprocessingml/2006/main"为什么要着重讲命名空间呢?因为docx的前缀不是统一的,比如Microsoft Word一般用w,但是wps就不用w了,记得在操作之前先确定命名空间。


以上只是举个列子,实际上各种标记种类和用法非常多。具体的标记用法参考OOXML标准,你可以在下图画红框的地方查找(仅适用于Microsoft Word)。

OOXML标准的中文翻译:https://hellowac.github.io/ecma-376-zh-cn/

请添加图片描述

本文言尽于此,后面我会再把python的源码开放出来。

1.17更新:源码不放了,python-doc支持修订和批注了。

http://www.yayakq.cn/news/101938/

相关文章:

  • 网站建设维护费网页代码大全详解
  • 易网拓营销型网站移动oa办公平台系统安卓版
  • 上海建设银行官网网站建筑工程公司名字起名大全
  • 长治网站开发西安哪家做网站最好
  • 文档怎么做网站链接石家庄建设
  • 北京科技网站开发自己怎么优化关键词
  • 网站上放的动画视频是怎么做的婚纱摄影网站排名
  • 企业可以做哪些网站有哪些有什么网站专门做美食的吗
  • 河南省南水北调建设管理局网站课程设计模板
  • 创建网站需要哪些要素手机网站快速建设
  • 公司网站修改方案做网站大约需要多少钱
  • dnf做汉堡怎么玩间网站河北师大科技楼网站建设
  • 网站建设 中企动力 东莞做网站怎么建站点
  • p2p网站建设报价2p排名软件开发的八个步骤
  • 松江网站关键词优化小程序平台商城
  • 公司网站需要备案么刚学做网站怎么划算
  • 自己做网站类型wordpress 能承受多大并发访问
  • 刷排名凡搜网站宝h5说 网站
  • 三端互通传奇发布网网站优化工作
  • 曾舜晞网站是哪个公司做的乐从做网站
  • 企业网站开发需要阿里云域名注册邮箱
  • 电子商务网站建设完整案例教程山东省建设工会网站
  • 携程旅游网官方网站 做攻略营销型网站建设细节
  • 免费网站制作教程网站建设与网络编辑综合实训课程指导手册
  • 本溪建网站网络销售每天做什么
  • 免费网站后台模版珠海企业集团网站建设
  • 邯郸开发网站有哪些禁止网站收录
  • 佛山建设网站公司吗网站建设对于企业发展的优势
  • 官方网站welcome怎么注册环球贸易网官网
  • 新网站怎样做优化电商行业