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制作简单的朴素基数估计器的教程
Apr 01 Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
Python模块包中__init__.py文件功能分析
Jun 14 Python
flask-socketio实现WebSocket的方法
Jul 31 Python
python读取各种文件数据方法解析
Dec 29 Python
python 自定义对象的打印方法
Jan 12 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
Apr 29 Python
在Django admin中编辑ManyToManyField的实现方法
Aug 09 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
python实现处理mysql结果输出方式
Apr 09 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
Apr 26 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 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
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
jquery自动填充勾选框即把勾选框打上true
2014/03/24 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
javascript自动生成包含数字与字符的随机字符串
2015/02/09 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
Vue瀑布流插件的使用示例
2018/09/19 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
python 实现图片批量压缩的示例
2020/12/18 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
三星法国官方网站:Samsung法国
2019/10/31 全球购物
教师自我评价范例
2013/09/24 职场文书
物流管理专业应届生求职信
2013/11/21 职场文书
《一件运动衫》教学反思
2014/02/19 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
车间安全生产标语
2014/06/06 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
婚宴邀请函
2015/01/30 职场文书
2015年教师节广播稿
2015/08/19 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS