问题描述
众所周知python有很多第三方库,这也是python简单实用的原因,有时用python处理word文档就需要安装python-docx库。
解决方案
1 安装python-docx库
首先找到python根目录(就是有python.exe的文件夹)打开Scripts文件夹
Shift+鼠标右键选择在此处打开powershell窗口或者cmd窗口输入pip install python-docx按下回车等待安装完成。
2 基本操作语法
2.1打开文档
document = Document() |
不填默认为新建一个文档
2.2加入不同等级的标题
document.add_heading(u'总标题',0) document.add_heading(u'一级标题',1) document.add_heading(u'二级标题',2) |
2.3添加文本
paragraph = document.add_paragraph(u'文本内容') |
2.4设置字号
run = paragraph.add_run(u'设置字号、') run.font.size = Pt(24) |
2.5设置英文字体
run = paragraph.add_run('Set Font,') run.font.name = 'Consolas' |
2.6设置中文字体
run = paragraph.add_run(u'设置中文字体、') run.font.name=u'宋体' r = run._element r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') |
2.7设置斜体
run = paragraph.add_run(u'斜体、') run.italic = True |
2.8 设置粗体
run = paragraph.add_run(u'粗体').bold = True |
2.9增加引用
document.add_paragraph('Intense quote', style='Intense Quote') |
2.10 增加列表
document.add_paragraph( |
Style='List Bullet'为无序
Style='List Number'为有序
2.11添加图片
document.add_picture('1.png', width=Inches(1.25)) |
1.png为图片名称(必须与代码文件在同一个文件夹内)
2.12增加表格
table = document.add_table(rows=1, cols=3) hdr_cells = table.rows[0].cells hdr_cells[0].text = 'Name' hdr_cells[1].text = 'Id' hdr_cells[2].text = 'Desc' |
2.13 再增加3行表格元素
for i in range(3): row_cells = table.add_row().cells row_cells[0].text = 'test'+str(i) row_cells[1].text = str(i) row_cells[2].text = 'desc'+str(i) |
2.14增加分页
document.add_page_break() |
2.15保存文件
document.save(u'测试.docx') |
3 完整代码
from docx import Document from docx.shared import Pt from docx.shared import Inches from docx.oxml.ns import qn document = Document() document.add_heading(u'MS WORD写入测试',0) document.add_heading(u'一级标题',1) document.add_heading(u'二级标题',2) paragraph = document.add_paragraph(u'我们在做文本测试!') run = paragraph.add_run(u'设置字号、') run.font.size = Pt(24) run = paragraph.add_run('Set Font,') run.font.name = 'Consolas' run = paragraph.add_run(u'设置中文字体、') run.font.name=u'宋体' r = run._element r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') run = paragraph.add_run(u'斜体、') run.italic = True run = paragraph.add_run(u'粗体').bold = True document.add_paragraph('Intense quote', style='Intense Quote') document.add_paragraph( u'无序列表元素1', style='List Bullet' ) document.add_paragraph( u'无序列表元素2', style='List Bullet' ) document.add_paragraph( u'有序列表元素1', style='List Number' ) document.add_paragraph( u'有序列表元素2', style='List Number' ) document.add_picture('1.png', width=Inches(1.25)) table = document.add_table(rows=1, cols=3) hdr_cells = table.rows[0].cells hdr_cells[0].text = 'Name' hdr_cells[1].text = 'Id' hdr_cells[2].text = 'Desc' for i in range(3): row_cells = table.add_row().cells row_cells[0].text = 'test'+str(i) row_cells[1].text = str(i) row_cells[2].text = 'desc'+str(i) document.add_page_break() document.save(u'测试.docx') |
4 生成效果