2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【Python办公自动化】docx库的使用(读取/编辑/调整 docx文档)

【Python办公自动化】docx库的使用(读取/编辑/调整 docx文档)

时间:2021-11-16 01:59:42

相关推荐

【Python办公自动化】docx库的使用(读取/编辑/调整 docx文档)

Python办公自动化 - docx库的使用

1 简介1.1 docx库1.2 docx文件结构 2 读取2.1 读取文件 docx.Document()2.2 读取段落 doc.paragraphs2.3 读取文字块 doc.runs 3 编辑3.1 创建文档3.2 添加标题3.3 添加段落3.4 添加文字块3.5 添加分页3.6 添加图片3.7 添加表格3.8 保存 4 文字/段落 样式调整4.1 修改文字样式4.2 修改段落样式 HomeWork作业1:词频计数作业2:请假条作业3:会议模板

整理博客不易,如需转载请注明出处 😃!

手动反爬:【Python办公自动化】文件管理

/Lyun911/article/details/114440541

1 简介

1.1 docx库

安装:pip install -i https://pypi.tuna./simple python-docx文档:https://python-docx.readthedocs.io/en/latest/功能:可以创建、修改Word(.docx)文件

1.2 docx文件结构

Word 的结构:Document:文档Paragraph:段落Run:文字块:在每一个段落中,具有相同字体格式的连续内容 为一个Run

2 读取

作业1:词频计数

2.1 读取文件 docx.Document()

from docx import Document# 读取 .docx 文件doc = Document('doc_test.docx')

2.2 读取段落 doc.paragraphs

print(doc.paragraphs)# [<docx.text.paragraph.Paragraph object at 0x000002A3FE9F7880>, <docx.text.paragraph.Paragraph object at 0x000002A3FE9F77C0>]# 可以看出里面有两个段落for p in doc.paragraphs:print(p.text)

2.3 读取文字块 doc.runs

p = doc.paragraphs[1]runs = p.runsfor run in runs:print(run.text)

3 编辑

作业2:请假条

创建文档添加:标题/ 文字块/ 分页/ 图片/ 表格保存文档

3.1 创建文档

from docx import Documentfrom docx.shared import Cmdoc = Document()

3.2 添加标题

doc.add_heading('Title level 1', level = 1)

3.3 添加段落

para1 = doc.add_paragraph('added paragraph 1')# 赋值可以方便之后修改段落内容doc.add_paragraph('added paragraph 2')# 也可以不赋值 直接添加段落内容

3.4 添加文字块

para3 = doc.add_paragraph('added paragraph 3')para3.add_run('added normal run')para3.add_run('added bold run').bold = Truepara3.add_run('added italic run').italic = True

3.5 添加分页

doc.add_page_break()

3.6 添加图片

doc.add_picture('图片.png')doc.add_picture('图片.png', width = Cm(5))doc.add_picture('图片.png', height = Cm(5))# 宽/高 比例自动调整

3.7 添加表格

records = [['No.', 'Name'], [1, 'Mike'], [2, 'Jack']]table = doc.add_table(rows = 3, cols = 2)for r in range(3):cells = table.rows[r].cellsfor c in range(2):cells[col].text = str(records[r][c])

3.8 保存

doc.save('./2.3 test docx.docx')

4 文字/段落 样式调整

4.1 修改文字样式

样式/ 颜色/ 字体

from docx import Documentfrom docx.shared import Pt, RGBColor# Pt:字体的大小,阿拉伯数字表示# RGBColor:字体颜色from docx.oxml.ns import qn# qn:设置中文字体# 方法:run.font.样式 = xxxdoc = Document('2.3 test docx.docx')for paragraph in doc.paragraphs:for run in paragraph.runs:run.font.bold = True # 加粗run.font.italic = True# 斜体run.font.underline = True # 下划线run.font.strike = True# 删除线run.font.shadow = True# 阴影run.font.size = Pt(20)# 字号run.font.color.rgb = RGBColor(255, 255, 0) # 颜色run.font.name = '微软雅黑'# 如果是英文,则不需要加下面两行r = run._element.rPr.rFontsr.set(qn('w:eastAsia'), '微软雅黑')# 中文时,需要加这两行doc.save('4.4Word文档批量调整内容样式_改.docx')

4.2 修改段落样式

对齐方式/ 行间距/ 段前段后间距

from docx.enum.text import WD_ALIGN_PARAGRAPHparagraph.alignment = WD_ALIGN_PARAGRAPH.CENTER# 方法:paragraph.alignment = 对齐方式# 可选的对齐方式:LEFT/CENTER/RIGHT/JUSTIFY/DISTRIBUTE/JUSTIFY_MED/JUSTIFY_HI/JUSTIFY_LOW/THAI_JUSTIFYparagraph.paragraph_format.line_spacing = 2.0# 注意:要使用浮点数,2.0就表示2倍行间距paragraph.paragraph_format.space_before = Pt(12)paragraph.paragraph_format.space_after = Pt(12)# 设置段前间距为12磅# 设置段后间距为12磅

HomeWork

作业1:词频计数

作业:编写一个Python程序,要求:1.打开文件Netease Q2 Earnings Release- Final.docx2.计算关键词profit出现的次数

import docxdoc = docx.Document('./Netease Q2 Earnings Release-Final.docx')container = ''for p in doc.paragraphs:container += p.text.lower()print(f'文件中 "profit" 出现了 {container.count("profit")} 次')

作业2:请假条

作业:编写一个Python程序,要求:1.制作一个自动生成请假条Word文档的程序2.通过命令行提示用户输入姓名、请假原因3.自动生成带标题、正文内容的请假条4.日期自动填写今天日期

import docximport datetimename = input('请假申请人:')reason = input('请假事由:')date_begin = input('请假日起:')date_end = input('请假日止:')doc = docx.Document()title = doc.add_heading('请 假 条', 0).bold = Truepara1 = doc.add_paragraph(f'\n\n\t本人由于{reason}的原因,特向领导申请事假,请假日期自{date_begin}至{date_end},望批准!')para2 = doc.add_paragraph(f'\n申请日:{datetime.datetime.now().date()}')para3 = doc.add_paragraph(f'\n申请人:{name}')doc.save('HomeWork 请假条.docx')

作业3:会议模板

作业:编写一个Python程序,要求:1.读取会议模板.txt文件2.根据其中的内容生成一个格式化后的word文档3.第一行为标题,要求居中且字体字号为18,加粗,微软雅黑4.罗马数字开头的行如I.、II.等, 要求字体字号为14,加粗,微软雅黑5.其它内容要求字体字号为12,微软雅黑6.可自行设计更丰富的样式7.将文档保存为会议模板.docx

会议议程与会者: 姓名I.宣布开会主持人姓名于日期时间在地点宣布召开组织/会员会名称的例会。II.点名干事姓名进行了点名。与会人员如下:与会者姓名III.批准上次会议的纪要干事姓名宣读了上次会议的纪要。在宣读时批准了纪要。IV.未决问题a)未决问题/讨论总结b)未决问题/讨论总结V.新业务a)新业务/讨论总结b)新业务/讨论总结VI.休会主持人姓名在时间宣布休会。纪要提交者:姓名纪要审批者:

待补

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。