用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解析xml中dom元素的方法
Mar 12 Python
用实例解释Python中的继承和多态的概念
Apr 27 Python
python使用smtplib模块通过gmail实现邮件发送的方法
May 08 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
python的内存管理和垃圾回收机制详解
May 18 Python
anaconda如何查看并管理python环境
Jul 05 Python
django创建超级用户过程解析
Sep 18 Python
python实现两个字典合并,两个list合并
Dec 02 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
Mar 09 Python
python实现杨辉三角的几种方法代码实例
Mar 02 Python
在python中实现导入一个需要传参的模块
May 12 Python
Django中session进行权限管理的使用
Jul 09 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 Smarty模板生成html文档的方法
2010/04/12 PHP
php json_encode值中大括号与花括号区别
2013/09/30 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
js可突破windows弹退效果代码
2008/08/09 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
对python多线程与global变量详解
2018/11/09 Python
python实现宿舍管理系统
2019/11/22 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
琳达·法罗眼镜英国官网:Linda Farrow英国
2021/01/19 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
夜不归宿检讨书
2014/02/25 职场文书
总经理助理的职责
2014/03/14 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
学校节能减排方案
2014/06/13 职场文书
道歉短信大全
2015/05/12 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python