有了 Python-Docx,不再害怕 Word 文档!

某医药交易企业的高级架构师,目前承接国家医保局医疗改革项目,主要负责ES的建设!

文章正文

工作中遇到项目交付时,会有大量的文档需要撰写。编辑文档内容已是费时费力,样式调整还是会把人逼入绝境。尤其是在编辑巨量的 Word 文档时,时不时出现 Word 卡死的情况。尤其是文档对样式有要求的时候,重复而繁重的工作简直让人崩溃。来吧,我来解脱你!

1. python-docx 的安装以及 Python 简单语法简介

1.1 python-docx 的安装

​python-docx 是一个第三方依赖库,首先要保证本机已经安装了 Python 3.0+ 以上版本,安装命令如下:

# 如果安装速度慢的话,可以修改镜像源为 https://pypi.tuna.tsinghua.edu.cn/simple 即可
pip install python-docx

本机已经安装了 Python、python-docx 详情如图:

在这里插入图片描述

1.2 Python 简单语法简介

Python 的变量赋值不需要声明类型,这和 Java、C 等语言不太一样。

Python 的运算符、条件语句、循环语句、While/for 语句和其它语言是一样的。

本文用到的 Python 数据类型主要是:数字、字符串、List、字典以及函数。

  # 数字
  a_int = 10
  b_int = 3
  # 不带浮点数
  print(10 // 3)
  # 带浮点数
  print(10 / 3)

  # 字符串
  a_str = "123"
  # 输出字符串
  print(a_str)
  b_str = "456"
  # 输出 a_str 和 b_str 做拼接的 3 种方式
  print("{} {}".format(a_str, b_str))
  print("%s %s" % (a_str, b_str))
  print(f"{a_str}{b_str}")

  # 定义 list
  lst = []
  # 添加一个元素
  lst.append(a_str)
  lst.append(b_str)
  # 循环输出
  for node in lst:
      print(node)

  # 定义字典
  dic_d = {"34": 44, "56": 67}
  # 添加
  dic_d['ab'] = 'cd'
  # 循环输出
  for key, val in dic_d.items():
      print("key %s and value %s" % (key, val))

  # 定义函数需要先定义再调用
  def func1(x):
      # python 中三元表达式的写法
      y = x * 2 if x > 5 else x * 3
      print(y)
      return y

  # 输出结果
  func1(10)
  func1(3)

好了,有了以上的基础知识,咱们可以开始主干任务了!

2. Word 文档的结构说明

首先声明,python-docx 只能操作 .docx 结尾的文档,如果是 Doc 的文档,需要转换后才能操作。

Word 的文档结构,类似于 XML 格式,层级比较分明。每一个节点都有节点的属性,也就是段落的样式、字体的颜色、行间距、背景色的设置。

Word 文档主要是由段落、标题、表格、图片、题注构成。每个段落里有不同的字体类型、字号。每个表格里有不同的行和列。标题也分为一级标题、二级标题等等。Word 文档的标题就是 head,表格就是 table,图片就是 picture,段落就是 paragraph。

这里需要说明的是,段落是由回车符进行分割的,每个段落里有多个 run,每个 run 就是由连续的相同文字(一样的字体类型、字号、中文或者西文)组成的。结构图如下:

在这里插入图片描述

3. python-docx 的语法说明

作者正在撰写中...
隐藏内容 支付可见
内容互动
写评论
加载更多
评论文章
¥3.99 购买
× 订阅 Java 精选频道
¥ 元/月
订阅即可免费阅读所有精选内容