Python读写docx文件的方法


Posted in Python onMay 08, 2018

Python读写word文档有现成的库可以处理。我这里采用 python-docx。可以用pip install python-docx安装一下。

这里说一句,ppt和excel也有类似的库哦,而且是直接读取文件里面的xml数据。所以doc格式得另找其他库处理,doc格式不是基于xml的。

帮助文档:http://python-docx.readthedocs.org/en/latest/

1、新建或打开文件。这个比较简单用docx的Document类,若指定路径则是打开文档;若没有指定路径则是新建文档

#coding:utf-8
import docx
 
#新建文档
doc_new = docx.Document()
 
#读取文档
doc = docx.Document(ur'C:\1.docx')

2、保存文件。有打开,就有保存。用Document类的save方法,其中参数是保存的文件路径,或者要保存的文件流。一般指定路径即可。

doc.save(path_or_stream)

3、对象集合。python-docx包含了word文档的相关对象集合。

doc.paragraphs #段落集合
doc.tables #表格集合
doc.sections #节 集合
doc.styles #样式集合
doc.inline_shapes #内置图形 等等...

4、插入段落。段落是word最基本的对象之一。

doc.add_paragraph(u'第一段',style=None) #插入一个段落,文本为“第一段”
#默认是不应用样式,这里也可以不写style参数,或者指定一个段落样式
doc.add_paragraph(u'第二段',style='Heading 2')
 
#这些样式都是word默认带有的样式,可以直接罗列出来有哪些段落样式
print [s.name for s in doc.styles if s.type==1]

5、新增样式。这个帮助文档里面说得不仔细,而且还是英文的。我手头上的项目用到这个,就自己琢磨出怎么使用,如下。

#coding:utf-8
from docx import Document
from docx.shared import RGBColor #这个是docx的颜色类
 
#新建文档
doc = Document()
 
#新增样式(第一个参数是样式名称,第二个参数是样式类型:1代表段落;2代表字符;3代表表格)
style = doc.styles.add_style('style name 1', 2)
 
#设置具体样式(修改样式字体为蓝色,当然还可以修改其他的,大家自己尝试)
style.font.color.rgb = RGBColor(0x0, 0x0, 0xff)

6、应用字符样式。字符自然是在段落里面的,可以采用下面方法给段落追加文字和设置字符样式。

#插入一个空白段落
p = doc.add_paragraph('')
p.add_run('123', style="Heading 1 Char")
p.add_run('456')
p.add_run('789', style="Heading 2 Char")
 
#这样一个段落就应用了两个字符样式,中间“456”就没应用样式
print p.text #输出结果是u'123456789' 也还是连续的

7、设置字体。当然可以不用通过设置样式对某些字进行设置,也可以直接设置。

p = doc.add_paragraph('')
r = p.add_run('123')
r.font.bold = True #加粗
r.font.italic = True #倾斜 等等...

8、表格操作。表格也是经常用到的一种对象类型。

#新建一个2x3的表格,style可以不写
table=doc.add_table(rows=2,cols=3,style=None)
 
#可以用table 的rows和columns得到这个表格的行数和列数
print len(table.rows)
print len(table.columns)
 
#遍历表格
for row in table.rows:
 row.cells[0].text = '1'
 #print row.cells[0].text
 
#新增行或列
table.add_row()
table.add_column()

Word常见操作差不多就是这些。大家可以查看帮助文档,也可以用dir和help查看对象的方法属性和帮助。

以上这篇Python读写docx文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Linux下使用python调用top命令获得CPU利用率
Mar 10 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
Jan 20 Python
Python中最大最小赋值小技巧(分享)
Dec 23 Python
Python unittest 简单实现参数化的方法
Nov 30 Python
Python数据类型之String字符串实例详解
May 08 Python
Python argparse模块应用实例解析
Nov 15 Python
在Python中使用turtle绘制多个同心圆示例
Nov 23 Python
python3 常见解密加密算法实例分析【base64、MD5等】
Dec 19 Python
pycharm 更改创建文件默认路径的操作
Feb 15 Python
keras 权重保存和权重载入方式
May 21 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
Jun 22 Python
python利用 keyboard 库记录键盘事件
Oct 16 Python
python docx 中文字体设置的操作方法
May 08 #Python
Python解析并读取PDF文件内容的方法
May 08 #Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 #Python
对Python中gensim库word2vec的使用详解
May 08 #Python
用python处理MS Word的实例讲解
May 08 #Python
基于python批量处理dat文件及科学计算方法详解
May 08 #Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 #Python
You might like
PHP+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
2014/08/18 Javascript
超赞的动手创建JavaScript框架的详细教程
2015/06/30 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
老生常谈JavaScript 函数表达式
2016/09/01 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
python利用hook技术破解https的实例代码
2013/03/25 Python
Python 操作文件的基本方法总结
2017/08/10 Python
django 创建过滤器的实例详解
2017/08/14 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
在职研究生自我鉴定
2013/10/16 职场文书
软件项目开发计划书
2014/05/01 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
铅球加油稿100字
2014/09/26 职场文书
神农溪导游词
2015/02/11 职场文书
杨善洲观后感
2015/06/04 职场文书