用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的id()函数介绍
Feb 10 Python
python实现删除文件与目录的方法
Nov 10 Python
Python实现Kmeans聚类算法
Jun 10 Python
numpy使用fromstring创建矩阵的实例
Jun 15 Python
python异步存储数据详解
Mar 19 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
Jul 02 Python
使用Python在Windows下获取USB PID&VID的方法
Jul 02 Python
Python实现基于SVM的分类器的方法
Jul 19 Python
pytorch forward两个参数实例
Jan 17 Python
python模拟斗地主发牌
Apr 22 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
Sep 25 Python
Django REST framework 限流功能的使用
Jun 24 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定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
2014/01/15 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
Python内置模块turtle绘图详解
2017/12/09 Python
基于python实现聊天室程序
2018/07/27 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
浅谈python写入大量文件的问题
2018/11/09 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
简单了解Python write writelines区别
2020/02/27 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
2020/03/09 Python
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
董事长秘书工作职责
2014/06/10 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
消防演习感想
2015/08/10 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL
python APScheduler执行定时任务介绍
2022/04/19 Python
nginx访问报403错误的几种情况详解
2022/07/23 Servers