Word文件的OpenXML解析(以Python3为例)

本文介绍如何使用Python解析Word文件的OpenXML格式,包括python-docx库的使用、OpenXML的基本结构如body、styles、settings,以及段落、字体、字号等元素解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Word文件的OpenXML解析

自Office 2007以来,新推出的.docx文件可以无损转换成OpenXML格式,以便于第三方工具生成、修改Word文件。本文以Python为背景,简单解析OpenXML中的常用元素,主要用作个人备忘。

个人邮箱为qxsoftware@163.com,欢迎来信交流。

本文目前仍在施工中,因疫情影响,完工日期未定QAQ
12/1/2020更新:感觉这个坑应该不会填了,如果大家有问题欢迎邮件讨论。

本文目录:

  • 准备工作
  • 初识OpenXML
  • 获取Word XML
    • 手动将Word文件另存为XML文件
    • 使用python-docx获取OpenXML
  • Word OpenXML常用结构
    • 整体结构:body、styles、setting等
    • 段落Paragraph结点:<w:p>
    • 基本格式单位Run结点:<w:r>
    • 格式Properties结点:<w:pPr><w:rPr>
      • 字体<w:rFonts>
      • 字号<w:sz><w:szCs>
    • 看的见的文字Text:<w:t>
    • 修订版本号rsid
    • 注音系统Ruby:<w:ruby>

准备工作

Python解析OpenXML的两个常用库:python-docxlxml,可通过pip安装,若对两个库不熟悉请参阅以下资料:

本文举例所用的文本内容,为唐朝诗人张若虚的《春江花月夜》,全文如下:

《春江花月夜》
【唐·张若虚】
春江潮水连海平,海上明月共潮生。
滟滟随波千万里,何处春江无月明?
江流宛转绕芳甸,月照花林皆似霰。
空里流霜不觉飞,汀上白沙看不见。
江天一色无纤尘,皎皎空中孤月轮。
江畔何人初见月?江月何年初照人?
人生代代无穷已,江月年年只相似。
不知江月待何人,但见长江送流水。
白云一片去悠悠,青枫浦上不胜愁。
谁家今夜扁舟子?何处相思明月楼?
可怜楼上月徘徊,应照离人妆镜台。
玉户帘中卷不去,捣衣砧上拂还来。
此时相望不相闻,愿逐月华流照君。
鸿雁长飞光不度,鱼龙潜跃水成文。
昨夜闲潭梦落花,可怜春半不还家。
江水流春去欲尽,江潭落月复西斜。
斜月沉沉藏海雾,碣石潇湘无限路。
不知乘月几人归?落月摇情满江树。
  • 将全文以纯文本方式粘贴到新建的word文档中,不修改任何格式,直接将文件保存为”春江花月夜.docx“。

  • (非必需) 之后,再将文件另存为”word xml(*.xml)“文件,命名为”春江花月夜.xml“,并使用喜欢的xml查看器打开(个人推荐安装了XML Tools插件的Notepad++ 不再推荐Notepad++,原因中国人都懂,我现在自己用VSCode)。

本文将以此为例。


初识OpenXML

准备工作完成后,先看一个OpenXML的简单例子(注意这不是一个完整的word文件):

<w:body xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:cx="http://schemas.microsoft.com/office/drawing/2014/chartex">
	<w:p w:rsidR="00691F43" w:rsidRDefault="00691F43" w:rsidP="00691F43">
		<w:r>
			<w:rPr>
				<w:rFonts w:hint="eastAsia"/>
			</w:rPr>
			<w:t>《春江花月夜》</w:t>
		</w:r>
	</w:p>
	<w:p w:rsidR=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值