分享

Python|利用第三方库编辑word的基本操作

 算法与编程之美 2020-08-08

问题描述

众所周知python有很多第三方库,这也是python简单实用的原因,有时用python处理word文档就需要安装python-docx库。

解决方案

安装python-docx

首先找到python根目录(就是有python.exe的文件夹)打开Scripts文件夹

Shift+鼠标右键选择在此处打开powershell窗口或者cmd窗口输入pip install python-docx按下回车等待安装完成。

基本操作语法

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(
     u'无序列表元素1',  style='List Bullet'
 )
 document.add_paragraph(
     u'无序列表元素2', style='List  Bullet'
 )

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')

生成效果


END

编       辑   |   王楠岚

责       编   |   王自强

 where2go 团队


微信号:算法与编程之美          

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多