栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python自动化办公篇 - 93 - word文件自动化 - 创建并生成 word 文档

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python自动化办公篇 - 93 - word文件自动化 - 创建并生成 word 文档

万叶集
 隐约雷鸣,阴霾天空。 
 但盼风雨来,能留你在此。 

前言:
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 哈士奇 ,致力于用白话讲解技术知识的博主 ✌
CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 
 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步
 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。
 如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦


系列专栏:
                Python全栈系列 - [更新中]     【 本文在该系列】
                        Python零基础入门篇
                        Python语法进阶篇
                        Python自动化办公篇
                网安之路系列
​                        网安之路踩坑篇
​                        网安知识扫盲篇
​                        Vulhub 漏洞复现篇
​                        Shell脚本编程篇
​                        Web攻防篇   2021年9月3日停止更新,转战先知等安全社区
​                        渗透工具使用集锦  2021年9月3日停止更新,转战先知等安全社区
​                ⭐️ 点点点工程师系列
​                        测试神器 - Charles 篇
​                        测试神器 - Fiddler 篇
​                        测试神器 - Jmeter 篇
​                        自动化 - RobotFrameWork 系列
​                        自动化 - 基于 JAVA 实现的WEB端UI自动化
                        自动化 - 基于 MonkeyRunner 实现的APP端UI自动化

文章目录
    •  保存生成 word
    •  生成标题
    •  生成段落
    •  添加图片
    •  添加表格
    •  分页

上几章节我们主要学习了如何读取文章,而主要任务是读取文档中的文本信息,也就是字符串,而图片本身是不可读的文件所以并没有去读取图片。从今天开始将学习如何通过 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')

运行结果如下:



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874839.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号