用python处理MS Word的实例讲解


Posted in Python onMay 08, 2018

使用python工具读写MS Word文件(docx与doc文件),主要利用了python-docx包。本文给出一些常用的操作,并完成一个样例,帮助大家快速入手。

安装

pyhton处理docx文件需要使用python-docx 包,可以利用pip工具很方便的安装,pip工具在python安装路径下的Scripts文件夹中

pip install python-docx

当然你也可以选择使用easy_install或者手动方式进行安装

写入文件内容

此处我们直接给出一个样例,根据自己的需要摘取有用的内容

#coding=utf-8
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'
)
#增加图像(此处用到图像image.bmp,请自行添加脚本所在目录中)
document.add_picture('image.bmp', 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'
#再增加3行表格元素
for i in xrange(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')

该段代码生成的文档样式如下

用python处理MS Word的实例讲解

注:有一个问题没找到如何解决,即如何为表格设置边框线。如果您知道,还请能够指教。

读取文件内容

#coding=utf-8
from docx import Document
#打开文档
document = Document(u'测试.docx')
#读取每段资料
l = [ paragraph.text.encode('gb2312') for paragraph in document.paragraphs];
#输出并观察结果,也可以通过其他手段处理文本即可
for i in l:
 print i
#读取表格材料,并输出结果
tables = [table for table in document.tables];
for table in tables:
 for row in table.rows:
  for cell in row.cells:
   print cell.text.encode('gb2312'),'\t',
  print
 print '\n'

我们仍然使用刚才我们生成的文件,可以看到,输出的结果为

用python处理MS Word的实例讲解

注意:此处我们使用gb2312编码方式读取,主要是保证中文的读写正确。一般情况下,使用的utf-8编码方式。另外,python-docx主要处理docx文件,在加载doc文件时,会出现问题,如果有大量doc文件,建议先将doc文件批量转换为docx文件,例如利用工具doc2doc

以上这篇用python处理MS Word的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python基于twisted实现简单的web服务器
Sep 29 Python
Python脚本实现下载合并SAE日志
Feb 10 Python
使用Python脚本来获取Cisco设备信息的示例
May 04 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
Sep 12 Python
Python常用的json标准库
Feb 19 Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 Python
图文详解Django使用Pycharm连接MySQL数据库
Aug 09 Python
关于pymysql模块的使用以及代码详解
Sep 01 Python
python sorted函数的小练习及解答
Sep 18 Python
如何基于python把文字图片写入word文档
Jul 31 Python
golang/python实现归并排序实例代码
Aug 30 Python
python help函数实例用法
Dec 06 Python
基于python批量处理dat文件及科学计算方法详解
May 08 #Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 #Python
Ubuntu下使用python读取doc和docx文档的内容方法
May 08 #Python
儿童编程python入门
May 08 #Python
解决python大批量读写.doc文件的问题
May 08 #Python
python在每个字符后添加空格的实例
May 07 #Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 #Python
You might like
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
修改发贴的编辑功能
2007/03/07 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
Canvas 制作动态进度加载水球详解及实例代码
2016/12/09 Javascript
AngularJS实现表单验证功能
2017/01/09 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
webpack 动态批量加载文件的实现方法
2020/03/19 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
python入门教程之识别验证码
2017/03/04 Python
详解Python用户登录接口的方法
2019/04/17 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
如何通过python检查文件是否被占用
2020/12/18 Python
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
毕业生多媒体设计求职信
2013/10/12 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
兵马俑的导游词
2015/02/02 职场文书
区域销售经理岗位职责
2015/04/02 职场文书
干货:如何写好工作总结报告!
2019/05/10 职场文书
MySQL主从切换的超详细步骤
2022/06/28 MySQL