python 操作word文档
效果

首先安装 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 |
| |
| |
| 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生成完毕") |
官方文档:文档对象 — python-docx 0.8.11 文档 (osgeo.cn)
本文作者:茶凡_Matrix
本文链接:https://www.cnblogs.com/ChaFan/p/17980223
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!