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 相关文章推荐
python strip()函数 介绍
May 24 Python
windows及linux环境下永久修改pip镜像源的方法
Nov 28 Python
浅谈Python基础之I/O模型
May 11 Python
python实现简单点对点(p2p)聊天
Sep 13 Python
Python的CGIHTTPServer交互实现详解
Feb 08 Python
python中ASCII码字符与int之间的转换方法
Jul 09 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
Mar 24 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
Python venv虚拟环境配置过程解析
Jul 08 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
深入理解Python变量的数据类型和存储
Feb 01 Python
Python 循环读取数据内存不足的解决方案
May 25 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
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
判断对象是否Window的实现代码
2012/01/10 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
详解Python中for循环的使用
2015/04/14 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
护理专业学生的求职信范文
2013/12/11 职场文书
股权投资意向书
2014/04/01 职场文书
关爱留守儿童标语
2014/06/18 职场文书
创先争优个人总结
2015/03/04 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书