python 操作word文档
python 操作word文档
文章目录
效果
首先安装 python-docx
pip install python-docx
基本使用方法
新建word文档
class docx.document.Document
Document 对象
#打开文档
document = Document()
添加标题
#加入不同等级的标题
add_heading(text='', level=1)
document.add_heading('标题1',1)
增加分页
add_page_break()[源代码]
新返回 Paragraph 对象只包含分页符
#增加分页
document.add_page_break()
添加文本
add_paragraph(text='', style=None)
返回新添加到文档末尾的段落,填充 text 有段落风格 风格 . text 可以包含制表符 (\t )字符,这些字符将转换为选项卡的适当XML格式。 text 也可以包括换行符 (\n )或回车 (\r )字符,每个字符都转换为换行符。
#添加文本
paragraph = document.add_paragraph(u'添加了文本')
设置字号
#设置字号
my_font = paragraph.add_run('')
my_font.font.size = Pt(12)
设置字体颜色
#设置字体颜色
my_font.font.color.rgb = RGBColor(0, 0, 0)
添加图片
add_picture(image_path_or_stream, width=None, height=None)
返回在文档末尾添加到其自身段落中的新图片形状。图片包含位于的图像 image_path_or_stream ,基于 宽度 和 高度 . 如果未指定宽度和高度,则图片将以其原始大小显示。如果只指定了一个,它将用于计算比例因子,然后应用于未指定的维度,保持图像的纵横比。图片的原始大小是使用图像文件中指定的每英寸点数(dpi)值来计算的,如果没有指定值,默认值为72 dpi
添加图片
document.add_picture("xxx.jpg",width=Inches(6),height=Inches(8))
插入表格
add_table(rows, cols, style=None)
添加行和列计数为的表 rows 和 cols 分别和表格样式 风格 . 风格 可以是段落样式对象或段落样式名称。如果 风格 是 None ,表继承文档的默认表样式。
#增加表格
table = document.add_table(rows=2,cols=2)
hdr_cells=table.rows[0].cells
hdr_cells[0].text="一行一列"
hdr_cells[1].text="一行二列"
hdr_cells = table.rows[1].cells
hdr_cells[0].text = '二行一列'
hdr_cells[1].text = '二行二列'
设置斜体
#设置斜体
fontStayle = paragraph.add_run(u'斜体、')
fontStayle.italic = True
设置字体
#设置字体
fontStayle = paragraph.add_run('Set Font,')
fontStayle.font.name='Consolas'
设置粗体
fontStayle = paragraph.add_run(u'粗体').bold = True
增加引用
#增加引用
document.add_paragraph('Intense quote', style='Intense Quote')
增加列表
#增加有序列表
document.add_paragraph(
u'有序列表元素1',style='List Number'
)
document.add_paragraph(
u'有序列别元素2',style='List Number'
)
#增加无序列表
document.add_paragraph(
u'无序列表元素1',style='List Bullet'
)
document.add_paragraph(
u'无序列表元素2',style='List Bullet'
)
保存文档
save(path_or_stream)
将此文档保存到 path_or_stream ,它可以是文件系统位置(字符串)的路径,也可以是类似文件的对象
#保存文件
document.save('笔记.docx')
使用案例
在日常中我们会有一些手写的笔记,为了保存好我们可以有两种方式,一种是把它全部电子化,一种是把它拍成图片做成电子档。以下是我将自己的数学笔记电子化的方式。
准备工作
将自己的图片文档采取 [1.jpg,2.jpg,3.jpg,4.jpg…] 格式命名好,就可以批量插入生成
from docx import Document
from docx.shared import Pt, RGBColor,Inches
#生成word 文档的函数
def wordfunc():
#打开文档
document = Document()
#加入不同等级的标题
document.add_heading('专升本高等数学笔记',0)
# 添加文本
paragraph = document.add_paragraph('author: 茶凡_Metrix')
# 设置字体和颜色
my_font = paragraph.add_run('')
my_font.font.size = Pt(12)
my_font.font.color.rgb = RGBColor(0, 0, 0)
list = []
for i in range(4):
list.append("./static/"+str(i+1)+".jpg")
#增加图片(此处使用相对位置)
for i in list:
document.add_picture(i,width=Inches(6),height=Inches(7.5))
#增加分页
document.add_page_break()
#保存文件
document.save('高等数学笔记.docx')
if __name__ == '__main__':
wordfunc()
print("word生成完毕")