Python自动化办公之Word文档的创建与生成
作者:渴望力量的哈士奇 发布时间:2022-06-16 17:49:43
上几章节我们主要学习了如何读取文章,而主要任务是读取文档中的文本信息,也就是字符串,而图片本身是不可读的文件所以并没有去读取图片。从今天开始将学习如何通过 python 脚本来自动生成一个 word 文档。
保存生成 word
在学习如何生成一个 word 文档之前,我们来看看如何保存生成 word 文件,因为马上就会用到。
使用方法:
document_obj.save(文件地址) ---> /home/demo.docx
代码示例如下:
# coding:utf-8
from docx import Document
doc = Document()
doc.save('test.docx')
运行结果如下:
生成标题
使用方法:
title_obj = DocumentObj.add_heading(标题内容, 标题样式等级) 通过 Document 对象调用 add_heading 函数 返回 标题对象。
标题样式等级:
0 <= lever <= 9
标题内容追加:
titleobj.add_run 通过标题对象调用 add_run 函数 进行标题内容的追加
代码示例如下:
# coding:utf-8
from docx import Document
doc = Document()
title = doc.add_heading('this is title', 1) # 添加 word 文件的 title 标题
title.add_run('\n - 测试版本') # 针对 title 标题进行内容追加(换行)
doc.save('test.docx')
运行结果如下:
生成段落
使用方法:
para_obj = document_obj.add_paragraph(段落内容) 通过 Document 对象调用 add_paragraph 函数 返回 段落对象。
段落内容追加:
para_obj.add_run(字符串内容)
换行方式:
\n 换行特殊字符来分割段落
代码示例如下:
# coding:utf-8
from docx import Document
doc = Document()
title = doc.add_heading('this is title', 1) # 添加 word 文件的 title 标题
title.add_run('\n - 测试版本') # 针对 title 标题进行内容追加(换行)
para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落')
doc.save('test.docx')
运行结果如下:
添加图片
使用方法:
image_obj = document_obj.add_picture(图片地址, 宽, 高) 通过 Document 对象调用 add_picture 函数 返回 图片对象。
宽高定义:
from docx.shared import Inches
add_picture(x, width=Inches(5), height=Inches(5))
代码示例如下:
# coding:utf-8
from docx import Document
from docx.shared import Inches
doc = Document()
title = doc.add_heading('this is title', 1) # 添加 word 文件的 title 标题
title.add_run('\n - 测试版本') # 针对 title 标题进行内容追加(换行)
para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落')
image = doc.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))
doc.save('test.docx')
运行结果如下:
添加表格
使用方法:
table_obj = document_obj.add_table(row=行数, cols=列数) 通过 Document 对象调用 add_table 函数 返回 表格对象。
cell = table_obj.row[0].cells 表格对象调用 rows 返回表格的行对象
cell[0].text = 当前行 0 列的内容
cell[1].text = 当前行 1 列的内容
表格追加:
row_cell = table.add_row().cells
代码示例如下:
# coding:utf-8
from docx import Document
from docx.shared import Inches
doc = Document()
title = doc.add_heading('this is title', 1) # 添加 word 文件的 title 标题
title.add_run('\n - 测试版本') # 针对 title 标题进行内容追加(换行)
para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落')
image = doc.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))
table_title = ['name', 'age', 'sex']
table = doc.add_table(rows=1, cols=3)
table_cells = table.rows[0].cells
table_cells[0].text = table_title[0]
table_cells[1].text = table_title[1]
table_cells[2].text = table_title[2]
data = [
('Neo', '18', 'man'),
('Adem', '17', 'man'),
('Lily', '18', 'women')
]
for i in data:
row_cells = table.add_row().cells
row_cells[0].text = i[0]
row_cells[1].text = i[1]
row_cells[2].text = i[2]
doc.save('test.docx')
运行结果如下:
分页
使用方法:
document_obj.add_page_break()
代码示例如下:
# coding:utf-8
from docx import Document
from docx.shared import Inches
doc = Document()
title = doc.add_heading('this is title', 1) # 添加 word 文件的 title 标题
title.add_run('\n - 测试版本') # 针对 title 标题进行内容追加(换行)
para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落')
image = doc.add_picture('test_image.png', width=Inches(3), height=Inches(1.5)) # 添加图片
table_title = ['name', 'age', 'sex'] # 定义表格的第一行的标题
table = doc.add_table(rows=1, cols=3) # 定义表格的行数、列数
table_cells = table.rows[0].cells # 将 table_title 的每列的名称写入表格
table_cells[0].text = table_title[0]
table_cells[1].text = table_title[1]
table_cells[2].text = table_title[2]
data = [ # 定义 data 的内容,准备将其追加写入表格
('Neo', '18', 'man'),
('Adem', '17', 'man'),
('Lily', '18', 'women')
]
for i in data: # 利用 for 循环将 data 追加写入表格
row_cells = table.add_row().cells
row_cells[0].text = i[0]
row_cells[1].text = i[1]
row_cells[2].text = i[2]
doc.add_page_break() # 添加 word 文件的分页
title = doc.add_heading('this is page_2 title', 1) # 添加 word 文件的第二分页的 title 标题
doc.save('test.docx')
运行结果如下:
来源:https://blog.csdn.net/weixin_42250835/article/details/124740739


猜你喜欢
- 本文从简单的例子入手,从打包文件去分析以下三个问题:webpack打包文件是怎样的?如何做到兼容各大模块化方案的?webpack3带来的新特
- 对于SQL Server的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题,因此本文只谈优化查询时如
- 前言Python 字符串是一个内置的类型序列。字符串可用于处理 Python 中的文本数据。Python 字符串是 Unicode 点的不可
- 一、什么是系统调用In computing, a system call is the programmatic way in which
- 数字范围:922337203685477~-922337203685477函数代码如下: <%Public Fun
- asp之家注:为什么要防止访客频繁刷新页面呢?也许你会说他想刷新就让他刷新吧,没什么关系,而且还增加了网页的PV,呵呵。但是有的页面我们可能
- 一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位
- 前言此Julia非彼Julia,指的是对于某复数 &nb
- 用程序来处理图像和办公文档经常出现在实际开发中,Python的标准库中虽然没有直接支持这些操作的模块,但我们可以通过Python生态圈中的第
- 语法JavaScript的语法和Java语言类似,每个语句以;结束,语句块用{...}。但是,JavaScript并不强制要求在每个语句的结
- 本篇介绍Python字典的常见操作。修改字典元素,如图。添加字典元素,如图。删除字典元素del方法,如图。删除字典元素clear方法,如图。
- 本程序属于一种特别的方法。使用范围比较有限,而且有一定的危险性。借鉴了asp后门里的一些方法。由于读取某IP的网卡MAC地址本程序通过调用a
- 插入或更新null空值一、在SQL语句中直接插入null或空字符串“”int? item = nul
- 接口测试返回数据为字典取值接口测试通常需要校验返回数据跟预期结果是否一致,这个时候如果返回数据为字典,那么我们要拿到我们想要的key对应的v
- WIN10系统MYSQL的下载与安装详细教程,记录如下前两天ubuntu下安装mysql遇到了一些依赖问题,结果解决了半天,没解决好,还把我
- 每个被捕获的参数将被作为纯Python字符串来发送,而不管正则表达式中的格式。 举个例子,在这行URLConf中:(r'^artic
- 1,查看py文件内的所有成员及快速定位到代码块如果你的py文件代码超过200行,一定要采用这个方法,能大大提高你的代码查找效率。方法1:(1
- 逻辑判断与逻辑语句对于─件事情正确与否(真假的判断) √ X根据判断的结果做不同的事情,就是我们的逻辑业务对于条件满足的判断语句,就是条件语
- 本文主要介绍如何通过python生成ppt文件,以及借助ppt模板来生成ppt环境python 3python-pptx安装pip3 ins
- 0. 学习目标栈和队列是在程序设计中常见的数据类型,从数据结构的角度来讲,栈和队列也是线性表,是操作受限的线性表,它们的基本操作是线性表操作