python操作 docx

一、安装Python-docx

Python-docx是专门针对于word文档的一个模块,只能读取docx 不能读取doc文件。说白了,python就相当于windows操作系统,QQ就是跑在windows操作系统上的软件,QQ最大的作用是可以去聊天,说话。 在这里python-docx就相当于这里的qq 它主要的功能是对docx文件进行操作,管理等.(个人理解,非专业!)

1.1、安装Python-docx

1.1.1、使用虚拟环境安装python-docx

pip install python-docx # 安装命令

12

安装结束后,在此虚拟环境中运行Jupyter notebook

jupyter notebook

12

1.1.2、切换工作目录(使用 %cd命令)

%cd F:python_test1Python_office # 进入目录
%pwd # 查看当前的工作目录
>>>'F:\python_test1\Python_office' # 输出结果
在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
1234567

二、对word文档进行编辑

在对word文档编辑之前需要导入Document模块如下:

from docx import Document
Doc = Document() 
解释:from 从 docx这个文件中,导入一个叫Document的一个东西,Document是文档的意思,所以它是对word文档进行操作的一个玩意. 在下面Doc = Document() 可以理解为 Document就是一个类,这个操作也就是实例化的过程,生成对象为:Doc

1234

那Document实例化了一个Object叫Doc 那么Doc肯定会有很多的方法,这些方法就是对word文档进行操作的方法如下:

Doc.add_heading("Python是什么东西???")
<docx.text.paragraph.Paragraph at 0x28033582e48>
# Doc.add_heading 意思是添加一个叫做heading的一个东西在这里heading指的是标题的意思,也就是添加一个标题叫做python是什么东西???运行完成后它会生成一个对象.

1234

2.1、添加一个段落(paragraph)

Doc.add_paragraph("Python是一种面向对象的编程语言~~~") # 在这里paragraph指的就是一个段落的意思
<docx.text.paragraph.Paragraph at 0x280335a17b8>

123

2.2、添加多个段落(paragraph)

Doc.add_paragraph("Python ")
Doc.add_paragraph("Python 对word进行操作")

123

2.3、如何查看word文档?

写完之后我们需要查看首先需要保存 如下:

Doc.save("Python_word.docx")
# save:保存 为名字叫:Python_word.docx 的文件

123

三、如何添加一级标题,二级标题,三级标题…?

3.1、添加一级标题

Doc = Document()
Doc.add_heading("这是一级标题",level=1)
Doc.add_heading("这是二级标题",level=2)
Doc.add_heading("这是三级标题",level=3)
Doc.add_heading("这是四级标题",level=4)
Doc.save("标题.docx")

1234567

打开效果如下:

四、如何添加一个副级标题?

Doc.add_heading("这是一个一级标题",level=1)
Doc.add_paragraph("这是一个副标题","Subtitle")
Doc.save("副标题.docx")

1234

五、查看已有的样式

5.1、查看paragraph有哪些样式

from docx.enum.style import WD_STYLE_TYPE
for i in Doc.styles:
 if i.type == WD_STYLE_TYPE.PARAGRAPH:
 print(i.name)
>>>
Normal
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Heading 7
Heading 8
Heading 9
No Spacing
Title
Subtitle
List Paragraph
Body Text
Body Text 2
Body Text 3
List
List 2
List 3
List Bullet
List Bullet 2
List Bullet 3
List Number
List Number 2
List Number 3
List Continue
List Continue 2
List Continue 3
macro
Quote
Caption
Intense Quote
TOC Heading

12345678910111213141516171819202122232425262728293031323334353637383940

5.2、查看文字有哪些样式

from docx.enum.style import WD_STYLE_TYPE
for i in Doc.styles:
 if i.type == WD_STYLE_TYPE.CHARACTER:
 print(i.name)
>>>
Default Paragraph Font
Heading 1 Char
Heading 2 Char
Heading 3 Char
Title Char
Subtitle Char
Body Text Char
Body Text 2 Char
Body Text 3 Char
Macro Text Char
Quote Char
Heading 4 Char
Heading 5 Char
Heading 6 Char
Heading 7 Char
Heading 8 Char
Heading 9 Char
Strong
Emphasis
Intense Quote Char
Subtle Emphasis
Intense Emphasis
Subtle Reference
Intense Reference
Book Title

12345678910111213141516171819202122232425262728293031

对Python感兴趣或者是正在学习的小伙伴,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,教你如何实现边学习边用Python赚钱的学习方式。点击加入我们的 python学习者聚集地

案例:

from docx import Document
%cd D:YanZan_python2018word
Docx = Document()
Docx.add_heading("这是一个一级标题",level=1)
Docx.add_paragraph("这是一个副级标题","Title")
A = Docx.add_paragraph("My name is aaa")
A.add_run("我学习的很快乐,啊哈哈哈哈哈,非常好 Good!!!")
Docx.add_heading("这是一个二级标题",level=2)
A = Docx.add_paragraph("这个是二级标题的内容呀")
B = A.add_run("二级标题里面的正文 继续添加!!!!!!!")
B.font.bold = True # 同时我要对这些正文进行加粗~~~~
B.font.size = (20)
Docx.add_heading("我爱学习Python以下就是python的logo呀",level=3)
Docx.add_picture("1.png")
Docx.add_table(rows=5, cols=5)
Docx.save("Python.docx")

doc = Document()#以默认模板建立文档对象

doc = Document(‘a.docx’)# 读取a.docx文档,建立文档对象

from docx.shared import Inches,Pt

def chg_font(obj,fontname=‘微软雅黑’,size=None):

## 设置字体函数

obj.font.name = fontname

# obj._element.rPr.rFonts.set(qn(‘w:eastAsia’),fontname)

if size and isinstance(size,Pt):

obj.font.size = size

distance = Inches(0.3)
sec = doc.sections[0]# sections对应文档中的“节”
sec.left_margin = distance# 以下依次设置左、右、上、下页面边距
sec.right_margin = distance
sec.top_margin = distance
sec.bottom_margin = distance
sec.page_width =Inches(12)#设置页面宽度
sec.page_height = Inches(20)#设置页面高度
##设置默认字体
chg_font(doc.styles[‘Normal’],fontname=‘宋体’)

1.添加段落文本

paragraph =doc.add_paragraph(‘text…’)
ph_format =paragraph.paragraph_format
ph_format.space_before =Pt(10)#设置段前间距
ph_format.space_after =Pt(12)#设置段后间距
ph_format.line_spacing=Pt(19)#设置行间距

如果希望同一段落中的文本格式不同,就需要使用Run对象(可以理解为可以单独设置格式的段落内对象)。

run = paragraph.add_run(‘text…’)
run.bold = True #设置字体为粗体
chg_font(run,fontname=‘微软雅黑’, size=Pt(12))#设置字体和字号

2.添加表格,并写入相关内容

tab =doc.add_table(rows=4,cols=4)#添加一个4行4列的空表
cell=tab.cell(1,3)#获取某单元格对象(从0开始索引)

在单元格中添加文本:

cell.text=‘abc’

在单元格中添加多行文本(指定转行)

ph =cell.paragraphs[0]
run=ph.add_run(‘text…’)
run.add_break()# 添加一个折行
run.add_picture(‘image/a.png’)# 插入图像,可以是内存中的图像,width=Inches(1.0)指定宽度。

3.在文档中添加图像:

doc.add_picture(‘image/a.png’)
doc.save(‘a.docx’)# 保存图像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值