如何用python操作word文档

Python (233) 2023-04-22 00:11:20

一、安装Python-docx

Python-docx是专门针对于word文档的一个模块,只能读取docx不能读取doc文件。说白了,python就相当于windows操作系统。

1.1、安装Python-docx

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

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
pipinstallpython-docx#安装命令
pipinstallpython-docx#安装命令
pipinstallpython-docx#安装命令

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

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
jupyternotebook
jupyternotebook
jupyternotebook

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

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
%cdF:python_test1Python_office#进入目录
%pwd#查看当前的工作目录
>>>'F:\python_test1\Python_office'#输出结果
%cdF:python_test1Python_office#进入目录 %pwd#查看当前的工作目录 >>>'F:\python_test1\Python_office'#输出结果
%cdF:python_test1Python_office#进入目录
%pwd#查看当前的工作目录
>>>'F:\python_test1\Python_office'#输出结果

二、对word文档进行编辑

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

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
fromdocximportDocument
Doc=Document()
解释:from从docx这个文件中,导入一个叫Document的一个东西,Document是文档的意思,所以它是对word文档进行操作的一个玩意。
在下面Doc=Document()可以理解为Document就是一个类,这个操作也就是实例化的过程,生成对象为:Doc
fromdocximportDocument Doc=Document() 解释:from从docx这个文件中,导入一个叫Document的一个东西,Document是文档的意思,所以它是对word文档进行操作的一个玩意。 在下面Doc=Document()可以理解为Document就是一个类,这个操作也就是实例化的过程,生成对象为:Doc
fromdocximportDocument
Doc=Document()
解释:from从docx这个文件中,导入一个叫Document的一个东西,Document是文档的意思,所以它是对word文档进行操作的一个玩意。
在下面Doc=Document()可以理解为Document就是一个类,这个操作也就是实例化的过程,生成对象为:Doc

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

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
Doc.add_heading("Python是什么东西???")
<docx.text.paragraph.Paragraphat0x28033582e48>
#Doc.add_heading意思是添加一个叫做heading的一个东西在这里heading指的是标题的意思,也就是添加一个标题叫做python是什么
东西???运行完成后它会生成一个对象。
Doc.add_heading("Python是什么东西???") <docx.text.paragraph.Paragraphat0x28033582e48> #Doc.add_heading意思是添加一个叫做heading的一个东西在这里heading指的是标题的意思,也就是添加一个标题叫做python是什么 东西???运行完成后它会生成一个对象。
Doc.add_heading("Python是什么东西???")
<docx.text.paragraph.Paragraphat0x28033582e48>
#Doc.add_heading意思是添加一个叫做heading的一个东西在这里heading指的是标题的意思,也就是添加一个标题叫做python是什么
东西???运行完成后它会生成一个对象。

2.1、添加一个段落(paragraph)

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
Doc.add_paragraph("Python是一种面向对象的编程语言~~~")#在这里paragraph指的就是一个段落的意思
<docx.text.paragraph.Paragraphat0x280335a17b8>
Doc.add_paragraph("Python是一种面向对象的编程语言~~~")#在这里paragraph指的就是一个段落的意思 <docx.text.paragraph.Paragraphat0x280335a17b8>
Doc.add_paragraph("Python是一种面向对象的编程语言~~~")#在这里paragraph指的就是一个段落的意思
<docx.text.paragraph.Paragraphat0x280335a17b8>

2.2、添加多个段落(paragraph)

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
Doc.add_paragraph("Python")
Doc.add_paragraph("Python对word进行操作")
Doc.add_paragraph("Python") Doc.add_paragraph("Python对word进行操作")
Doc.add_paragraph("Python")
Doc.add_paragraph("Python对word进行操作")

2.3、如何查看word文档?

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

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
Doc.save("Python_word.docx")#save:保存为名字叫Python_word.docx的文件
Doc.save("Python_word.docx")#save:保存为名字叫Python_word.docx的文件
Doc.save("Python_word.docx")#save:保存为名字叫Python_word.docx的文件

相关推荐:《Python教程》

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

3.1、添加一级标题

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
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")
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")
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")

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

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
Doc.add_heading("这是一个一级标题",level=1)
Doc.add_paragraph("这是一个副标题","Subtitle")
Doc.save("副标题.docx")
Doc.add_heading("这是一个一级标题",level=1) Doc.add_paragraph("这是一个副标题","Subtitle") Doc.save("副标题.docx")
Doc.add_heading("这是一个一级标题",level=1)
Doc.add_paragraph("这是一个副标题","Subtitle")
Doc.save("副标题.docx")

五、查看已有的样式

5.1、查看paragraph有哪些样式

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
fromdocx.enum.styleimportWD_STYLE_TYPE
foriinDoc.styles:
ifi.type==WD_STYLE_TYPE.PARAGRAPH:
print(i.name)
>>>
Normal
Heading1
Heading2
Heading3
Heading4
Heading5
Heading6
Heading7
Heading8
Heading9
NoSpacing
Title
Subtitle
ListParagraph
BodyText
BodyText2
BodyText3
List
List2
List3
ListBullet
ListBullet2
ListBullet3
ListNumber
ListNumber2
ListNumber3
ListContinue
ListContinue2
ListContinue3
macro
Quote
Caption
IntenseQuote
TOCHeading
fromdocx.enum.styleimportWD_STYLE_TYPE foriinDoc.styles: ifi.type==WD_STYLE_TYPE.PARAGRAPH: print(i.name) >>> Normal Heading1 Heading2 Heading3 Heading4 Heading5 Heading6 Heading7 Heading8 Heading9 NoSpacing Title Subtitle ListParagraph BodyText BodyText2 BodyText3 List List2 List3 ListBullet ListBullet2 ListBullet3 ListNumber ListNumber2 ListNumber3 ListContinue ListContinue2 ListContinue3 macro Quote Caption IntenseQuote TOCHeading
fromdocx.enum.styleimportWD_STYLE_TYPE
foriinDoc.styles:
ifi.type==WD_STYLE_TYPE.PARAGRAPH:
print(i.name)
>>>
Normal
Heading1
Heading2
Heading3
Heading4
Heading5
Heading6
Heading7
Heading8
Heading9
NoSpacing
Title
Subtitle
ListParagraph
BodyText
BodyText2
BodyText3
List
List2
List3
ListBullet
ListBullet2
ListBullet3
ListNumber
ListNumber2
ListNumber3
ListContinue
ListContinue2
ListContinue3
macro
Quote
Caption
IntenseQuote
TOCHeading

5.2、查看文字有哪些样式

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
fromdocx.enum.styleimportWD_STYLE_TYPE
foriinDoc.styles:
ifi.type==WD_STYLE_TYPE.CHARACTER:
print(i.name)
>>>
DefaultParagraphFont
Heading1Char
Heading2Char
Heading3Char
TitleChar
SubtitleChar
BodyTextChar
BodyText2Char
BodyText3Char
MacroTextChar
QuoteChar
Heading4Char
Heading5Char
Heading6Char
Heading7Char
Heading8Char
Heading9Char
Strong
Emphasis
IntenseQuoteChar
SubtleEmphasis
IntenseEmphasis
SubtleReference
IntenseReference
BookTitle
fromdocx.enum.styleimportWD_STYLE_TYPE foriinDoc.styles: ifi.type==WD_STYLE_TYPE.CHARACTER: print(i.name) >>> DefaultParagraphFont Heading1Char Heading2Char Heading3Char TitleChar SubtitleChar BodyTextChar BodyText2Char BodyText3Char MacroTextChar QuoteChar Heading4Char Heading5Char Heading6Char Heading7Char Heading8Char Heading9Char Strong Emphasis IntenseQuoteChar SubtleEmphasis IntenseEmphasis SubtleReference IntenseReference BookTitle
fromdocx.enum.styleimportWD_STYLE_TYPE
foriinDoc.styles:
ifi.type==WD_STYLE_TYPE.CHARACTER:
print(i.name)
>>>
DefaultParagraphFont
Heading1Char
Heading2Char
Heading3Char
TitleChar
SubtitleChar
BodyTextChar
BodyText2Char
BodyText3Char
MacroTextChar
QuoteChar
Heading4Char
Heading5Char
Heading6Char
Heading7Char
Heading8Char
Heading9Char
Strong
Emphasis
IntenseQuoteChar
SubtleEmphasis
IntenseEmphasis
SubtleReference
IntenseReference
BookTitle

案例:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
fromdocximportDocument
%cdD:YanZan_python2018word
Docx=Document()
Docx.add_heading("这是一个一级标题",level=1)
Docx.add_paragraph("这是一个副级标题","Title")
A=Docx.add_paragraph("Mynameisaaa")
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")
fromdocximportDocument %cdD:YanZan_python2018word Docx=Document() Docx.add_heading("这是一个一级标题",level=1) Docx.add_paragraph("这是一个副级标题","Title") A=Docx.add_paragraph("Mynameisaaa") 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")
fromdocximportDocument
%cdD:YanZan_python2018word
Docx=Document()
Docx.add_heading("这是一个一级标题",level=1)
Docx.add_paragraph("这是一个副级标题","Title")
A=Docx.add_paragraph("Mynameisaaa")
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")

效果如下:

THE END

发表回复