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中的多进程、多线程、协程
Jun 22 Python
python 禁止函数修改列表的实现方法
Aug 03 Python
Python单例模式的两种实现方法
Aug 14 Python
Python中static相关知识小结
Jan 02 Python
对python中if语句的真假判断实例详解
Feb 18 Python
Python模块的制作方法实例分析
Dec 21 Python
tensorflow多维张量计算实例
Feb 11 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 Python
python基本算法之实现归并排序(Merge sort)
Sep 01 Python
Python爬虫过程解析之多线程获取小米应用商店数据
Nov 14 Python
Python 实现二叉查找树的示例代码
Dec 21 Python
解决python的空格和tab混淆而报错的问题
Feb 26 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
Laravel事件监听器用法实例分析
2019/03/12 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
jQuery实现用户注册的表单验证示例
2013/08/28 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
jQuery实现跨域
2015/02/03 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
Angular2中select用法之设置默认值与事件详解
2017/05/07 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
js微信分享实现代码
2020/10/11 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
详解vue组件之间的通信
2020/08/30 Javascript
详解使用python crontab设置linux定时任务
2016/12/08 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
对python Tkinter Text的用法详解
2018/10/11 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
中软国际Java程序员笔试题
2014/07/19 面试题
工会主席岗位责任制
2014/02/11 职场文书
学校三节实施方案
2014/06/09 职场文书
合作协议书格式
2014/08/19 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
母亲节主题班会
2015/08/14 职场文书
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android