用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网络编程学习笔记(四):域名系统
Jun 09 Python
调试Python程序代码的几种方法总结
Apr 28 Python
python操作ie登陆土豆网的方法
May 09 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
使用Python脚本和ADB命令实现卸载App
Feb 10 Python
pandas获取groupby分组里最大值所在的行方法
Apr 20 Python
Python中的元组介绍
Jan 28 Python
Django框架视图介绍与使用详解
Jul 18 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 Python
tensorflow 变长序列存储实例
Jan 20 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 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
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
python使用opencv进行人脸识别
2017/04/07 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
python实现彩色图转换成灰度图
2019/01/15 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
证券期货行业个人的自我评价
2013/12/26 职场文书
新驾驶员个人自我评价
2014/01/03 职场文书
大学社团活动策划书
2014/01/26 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
大学生团员个人总结
2015/02/14 职场文书