docx

​ python-docx是一个用于创建和更新Microsoft word(.docx)文件的Python库

安装
pip install python-docx
快速入门
打开文档

需要的第一件事是要处理的文档。

from docx import Document

document = Document()

这将打开一个基于默认"模板"的空白文档,这与你使用内置默认值在word中启动新文档时所得到的差不多。可以使用打开处理现有的word文档.

添加段落

段落是Word的基础。用于正文,但也用于标题和列表项(如项目符号)

这是添加一个的最简单方法

paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')

此方法返回对段落的引用,即文档末尾新添加的段落。在本例中,新的段落引用已分配给paragraph ,但除非需要,否则我将在以下示例中将其省略。在您的代码中,通常在添加项目后您不会对其执行任何操作,因此保留对它的引用没有多大意义。

也可以使用一个段落作为“光标”并在其正上方插入一个新段落:

prior_paragraph = paragraph.insert_paragraph_before('Lorem ipsum')
添加标题

在除了最短的文档之外的任何文档中,正文都分为多个部分,每个部分都以标题开头。添加方法如下:

document.add_heading('The REAL meaning of the universe')

默认情况下,这回添加一个顶级标题,在word中显示"标题1".当你想要子部分的标题时,只需将所需的级别指定为1到9之间的整数

document.add_heading('The role of dolphins', level=2)
添加分页符

经常会遇到适合以表格形式呈现的内容,这些内容以整齐的行和列排序

添加表的方法如下:

table = document.add_table(rows=2, cols=2)

表具有填充它们所需的多个属性和方法,可以通过单元格的行和列索引访问单元格

cell = table.cell(0, 1)

这将为你提供我们刚创建的表格顶行中的右侧单元格,行和列索引是从零开始的,就像列表访问一样

一旦你有了一个单元格,就可以在里面放一些东西:

cell.text = 'parrot, possibly dead'

通常,一次访问一行单元格会更容易,例如从数据源填充可变长度的表时。.rows表的属性提供对各个行的访问,每行都有一个属性.cells。.cells支持row支持colum索引访问

row = table.rows[1]
row.cells[0].text = 'Foo bar to you.'
row.cells[1].text = 'And a hearty foo bar to you too sir!'

列表和集合都是可迭代的,因此可直接在循环中使用.rows使用。

for row in table.rows:
for cell in row.cells:
print(cell.text)

如果想要表中的行或列的计数,只需使用len()

row_count = len(table.rows)
col_count = len(table.columns)

这对于我们上面提到的可变长度表场景非常方便

# get table data -------------
items = (
(7, '1024', 'Plush kittens'),
(3, '2042', 'Furbees'),
(1, '1288', 'French Poodle Collars, Deluxe'),
) # add table ------------------
table = document.add_table(1, 3) # populate header row --------
heading_cells = table.rows[0].cells
heading_cells[0].text = 'Qty'
heading_cells[1].text = 'SKU'
heading_cells[2].text = 'Description' # add a data row for each item
for item in items:
cells = table.add_row().cells
cells[0].text = str(item.qty)
cells[1].text = item.sku
cells[2].text = item.desc

可以向表中增量添加行,如下

row = table.add_row()

这对于我们上面提到的可变长度表场景非常方便

# get table data -------------
items = (
(7, '1024', 'Plush kittens'),
(3, '2042', 'Furbees'),
(1, '1288', 'French Poodle Collars, Deluxe'),
) # add table ------------------
table = document.add_table(1, 3) # populate header row --------
heading_cells = table.rows[0].cells
heading_cells[0].text = 'Qty'
heading_cells[1].text = 'SKU'
heading_cells[2].text = 'Description' # add a data row for each item
for item in items:
cells = table.add_row().cells
cells[0].text = str(item.qty)
cells[1].text = item.sku
cells[2].text = item.desc
添加图片

word允许使用菜单项将图像放置在文档中。

document.add_picture('image-filename.png')

此示例使用一个路径,该路径从本地文件系统加载图像文件

图像大小

默认下,添加的图像以原始大小显示。

要获得所需的图像尺寸

from docx.shared import Inches

document.add_picture('image-filename.png', width=Inches(1.0))
应用段落样式

可以在传教段落时立即应用段落样式

document.add_paragraph('Lorem ipsum dolor sit amet.', style='ListBullet')
应用字符样式

word指定一组运行级别设置的字符样式。可以将字符样式视为指定字体,包括其字体,大小,颜色,粗体,斜体等。

添加新的运行时可以指定字符样式

paragraph = document.add_paragraph('Normal text, ')
paragraph.add_run('text with emphasis.', 'Emphasis')
字体颜色

from docx import Document
from docx.shared import RGBColor,Pt
from docx.shared import Inches
#创建document对象
document = Document()
#设置字体颜色
paragraph = document.add_paragraph().add_run('hello')
font = paragraph.font
font.color.rgb = RGBColor(0x42, 0x24, 0xE9)

python-docx -快速入门的更多相关文章

  1. Python pandas快速入门

    Python pandas快速入门2017年03月14日 17:17:52 青盏 阅读数:14292 标签: python numpy 数据分析 更多 个人分类: machine learning 来 ...

  2. Python 3 快速入门 1 —— 数据类型与变量

    本文假设你已经有一门面向对象编程语言基础,如Java等,且希望快速了解并使用Python语言.本文对重点语法和数据结构以及用法进行详细说明,同时对一些难以理解的点进行了图解,以便大家快速入门.一些较偏 ...

  3. Python 3 快速入门 2 —— 流程控制与函数

    本文假设你已经有一门面向对象编程语言基础,如Java等,且希望快速了解并使用Python语言.本文对重点语法和数据结构以及用法进行详细说明,同时对一些难以理解的点进行了图解,以便大家快速入门.一些较偏 ...

  4. Python 3 快速入门 3 —— 模块与类

    本文假设你已经有一门面向对象编程语言基础,如Java等,且希望快速了解并使用Python语言.本文对重点语法和数据结构以及用法进行详细说明,同时对一些难以理解的点进行了图解,以便大家快速入门.一些较偏 ...

  5. 转:Python requests 快速入门

    迫不及待了吗?本页内容为如何入门Requests提供了很好的指引.其假设你已经安装了Requests.如果还没有, 去 安装 一节看看吧. 首先,确认一下: ·Requests 已安装 ·Reques ...

  6. Python Requests快速入门

    迫不及待了吗?本页内容为如何入门Requests提供了很好的指引.其假设你已经安装了Requests.如果还没有, 去 安装 一节看看吧. 首先,确认一下: Requests 已安装 Requests ...

  7. 懂一点Python系列——快速入门

    本文面相有 一定编程基础 的朋友学习,所以略过了 环境安装.IDE 搭建 等一系列简单繁琐的事情. 一.Python 简介 Python 英文原意为 "蟒蛇",直到 1989 年荷 ...

  8. 第一阶段——CentOS6_Python3.6.1笔记(尚学堂-Python基础快速入门)+ 【补充】麦子-Python程序入门与进阶

    虚拟机环境: 设置网络 .修改网络地址 .设置网卡为nat模式 .确保物理机启动dhcp.net服务 .编辑文件:vim /etc/sysconfig/network-scripts/ifcfg-et ...

  9. 零起点PYTHON机器学习快速入门 PDF |网盘链接下载|

      点击此处进入下载地址 提取码:2wg3 资料简介: 本书采用独创的黑箱模式,MBA案例教学机制,结合一线实战案例,介绍Sklearn人工智能模块库和常用的机器学习算法.书中配备大量图表说明,没有枯 ...

  10. python面向对象--快速入门

    1面向对象基本用法 1.1基本格式 class 类名: def __init__(self,x): self.x = x def 方法名字 (self): #函数在类里称为方法,self就是固定参数, ...

随机推荐

  1. 极致性能优化:前端SSR渲染利器Qwik.js

    引言 前端性能已成为网站和应用成功的关键要素之一.用户期望快速加载的页面和流畅的交互,而前端框架的选择对于实现这些目标至关重要.然而,传统的前端框架在某些情况下可能面临性能挑战且存在技术壁垒. 在这个 ...

  2. Java安全机制之一——SecurityManager和AccessController

    前言: 在看socket相关代码的时候,AbstractPlainSocketImpl中的一段代码吸引了我,其实之前见过很多次类似的代码,但一直不想去看,只知道肯定和权限什么的相关,这次既然又碰到了就 ...

  3. 题解 CF277A

    题目大意: 有 \(n\) 名员工,一共有 \(m\) 种语言,每名员工都会其中 \(k_i\) 种语言(\(m \ge \boldsymbol{k_i \ge 0}\)),现规定两名员工可以交流的条 ...

  4. simple-check-100

    代码脚本解开法 #include <stdio.h> int main(int argc, char* argv[]) { char flag_data[] = { 220, 23, 19 ...

  5. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-30-处理日历时间控件-下篇

    1.简介 理想很丰满现实很骨感,在应用playwright实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操 ...

  6. WPF应用开发之控件动态内容展示

    在我们开发一些复杂信息的时候,由于需要动态展示一些相关信息,因此我们需要考虑一些控件内容的动态展示,可以通过动态构建控件的方式进行显示,如动态选项卡展示不同的信息,或者动态展示一个自定义控件的内容等等 ...

  7. 神经网络入门篇:详解搭建神经网络块(Building blocks of deep neural networks)

    搭建神经网络块 这是一个层数较少的神经网络,选择其中一层(方框部分),从这一层的计算着手.在第\(l\)层有参数\(W^{[l]}\)和\(b^{[l]}\),正向传播里有输入的激活函数,输入是前一层 ...

  8. 51Nod - 1086 多重背包

    有N种物品,每种物品的数量为C1,C2......Cn.从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2......Wn(Wi为整数),与之相对应的价值为P1,P2......Pn(Pi ...

  9. Docker容器运行、使用、管理

    docker container [COMMAND] 命令: **exec 在容器中执行命令** export 将容器的文件系统导出为tar归档文件(和docker save的区别在于,save会记录 ...

  10. 加速计算,为何会成为 AI 时代的计算力“新宠” 审核中

    随着科技的发展,处理大量数据和进行复杂计算的需求越来越高,人工智能.大数据和物联网等领域更是如此,传统的计算方式已经无法满足这些需求.因此,加速计算作为一种现代计算方式,成了必要的手段.加速计算具有前 ...