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')
标签:docx,入门,python,text,cells,add,table,document,row
From: https://www.cnblogs.com/djl-0628/p/17702672.html