首页 > 编程语言 >python-docx -快速入门

python-docx -快速入门

时间:2023-09-14 15:47:07浏览次数:50  
标签:docx 入门 python text cells add table document row

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

相关文章

  • python的flask框架部署网页过程报错及解决方案
    python安装好flask框架之后,创建一个flask的项目,运行发生以下报错UnicodeDecodeError:'utf-8'codeccan'tdecodebyte0xa1inposition4:invalidstartbyte原因是读取flask库源码的时候系统默认未使用‘utf-8’格式win10电脑->控制面板->区域->管理->更改系统区域设置......
  • Python应用实战——盘点一个Python面试编程题(附代码)
    大家好,我是皮皮。一、前言前几天在Python奥特曼交流群【。。】问了一个Python面试题的问题,一起来看看吧,图片代码分享版本在这个文章,盘点一个Python面试编程题(Python应用实战)(文末赠书),在里边也可以拿到原始的需求数据。这里应粉丝的要求,分享一个代码版本,手残党福利来了!二、实现......
  • CMAKE相对路径编译和python的ctypes引用
    CMAKE相对路径编译和python的ctypes引用cmake编译库使用相对路径cmake编译使用相对路径生成动态库,进而满足其他代码的调用,如python的ctypes由于ctypes能调用c,而不能调用c++,所以,使用externc来处理,使ctypes能够调用。externc在需要编译动态库cpp代码中,使用C的方式处理函数......
  • 盘点6个应该掌握的Python内置函数!
    Python作为一种灵活而强大的编程语言,越来越多的工程师开始学习、使用它。今天给大家介绍6个常见的Python内置函数,希望大家能够掌握它,以下是详细的内容:1、len()函数len()命令是一种简单而不可或缺的机制,用于确定指定可迭代对象(如列表、元组或字符串)的大小(即组件的计......
  • python分片和断点续传oss
    分片上传和断点续传是常见于文件上传至云存储服务的操作,其中OSS(ObjectStorageService)是阿里云提供的云存储服务。Python可以用来实现分片上传和断点续传到阿里云OSS。下面是一个简单的示例,演示了如何使用Python和阿里云OSSSDK进行分片上传和断点续传。首先,确保你已......
  • python 根据asctime字符串转成日期
    1、将asctime转换为时间戳如果将asctime转换为日期时间字符串,首先需要将asctime转换为时间戳。时间戳是指自1970年1月1日以来的秒数。Python中的time模块提供了将asctime转换为时间戳的函数mktime。importtimeasctime="FriMay1405:24:592021"t=time.mktim......
  • MySQL 和 Python:无缝结合的数据库应用
    MySQL和Python都是广泛应用于软件开发的重要工具。MySQL是一种强大的关系型数据库管理系统,而Python则是一种灵活的高级编程语言。它们之间的紧密集成为开发人员提供了强大的数据存储和操作能力。本文将探讨MySQL和Python之间的关系,并提供一些示例代码来演示如何在Python......
  • 使用python进行数据同步,根据游标的方式
    使用python进行数据同步,根据游标的方式一、介绍:数据同步分为好几种,比如根据最大id排序,其次才是根据游标进行排序。为什么不使用最大id进行数据同步?如下:因为如果数据表中的数据是按照降序排序的,那么每次根据最大id取1000条数据的方式也是一种可行的分页查询方式。这种方式的优......
  • 使用pyinstaller和electron将python打包为桌面端应用,无法在win7上执行
    在win10或win11上开发的软件,直接在win7上运行,可能导致下面的问题(python3.11electron23.*)(python3.7electron23.*) 原因在于:win10或win11上的开发环境(如python版本,electron版本)过高,win7不支持该环境。解决办法:降低python版本和electron版本,如:win7支持的python3.7和electron1......
  • MySQL入门系列11-索引
    一、概念索引是帮助MySQL高效获取数据的数据结构。数据库除了存储数据之外,还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用数据,当我们在查找数据的时候,就可以在这些数据结构上实现高级查找算法,快速查找我们需要的数据,这种数据结构就是索引。在没有索引的情况下,查询......