Python读写Excel文件方法介绍


Posted in Python onNovember 22, 2014

一、读取excel

这里介绍一个不错的包xlrs,可以工作在任何平台。这也就意味着你可以在Linux下读取Excel文件。

首先,打开workbook;

import xlrd

wb = xlrd.open_workbook('myworkbook.xls')

检查表单名字:

wb.sheet_names()

得到第一张表单,两种方式:索引和名字   
sh = wb.sheet_by_index(0)

sh = wb.sheet_by_name(u'Sheet1')

递归打印出每行的信息:  
for rownum in range(sh.nrows):

    print sh.row_values(rownum)

如果只想返回第一列数据:
first_column = sh.col_values(0)

[code]

通过索引读取数据:

[code]

cell_A1 =  sh.cell(0,0).value

cell_C4 = sh.cell(rowx=3,colx=2).value

注意:这里的索引都是从0开始的。

二、写excel

这里介绍一个不错的包xlwt,可以工作在任何平台。这也就意味着你可以在Linux下保存Excel文件。

基本部分

在写入Excel表格之前,你必须初始化workbook对象,然后添加一个workbook对象。比如:

import xlwt

wbk = xlwt.Workbook()

sheet = wbk.add_sheet('sheet 1')

这样表单就被创建了,写入数据也很简单:

# indexing is zero based, row then column

sheet.write(0,1,'test text')

之后,就可以保存文件(这里不需要想打开文件一样需要close文件):

wbk.save('test.xls')

深入探索

worksheet对象,当你更改表单内容的时候,会有警告提示。

sheet.write(0,0,'test')

sheet.write(0,0,'oops')

 

# returns error:

# Exception: Attempt to overwrite cell:

# sheetname=u'sheet 1' rowx=0 colx=0

解决方式:使用cell_overwrite_ok=True来创建worksheet:

sheet2 =  wbk.add_sheet('sheet 2', cell_overwrite_ok=True)

sheet2.write(0,0,'some text')

sheet2.write(0,0,'this should overwrite')

这样你就可以更改表单2的内容了。

更多:

# Initialize a style

style = xlwt.XFStyle()

 

# Create a font to use with the style

font = xlwt.Font()

font.name = 'Times New Roman'

font.bold = True

 

# Set the style's font to this new one you set up

style.font = font

 

# Use the style when writing

sheet.write(0, 0, 'some bold Times text', style)

xlwt 允许你每个格子或者整行地设置格式。还可以允许你添加链接以及公式。其实你可以阅读源代码,那里有很多例子:

    dates.py, 展示如何设置不同的数据格式
    hyperlinks.py, 展示如何创建超链接 (hint: you need to use a formula)
    merged.py, 展示如何合并格子
    row_styles.py, 展示如何应用Style到整行格子中.

三、修改excel

Python中一般使用xlrd(excel read)来读取Excel文件,使用xlwt(excel write)来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用xlrd读 取excel是不能对其进行操作的:xlrd.open_workbook()方法返回xlrd.Book类型,是只读的,不能对其进行操作。而 xlwt.Workbook()返回的xlwt.Workbook类型的save(filepath)方法可以保存excel文件。

因此对于读取和生成Excel文件都非常容易处理,但是对于已经存在的Excel文件进行修改就比较麻烦了。不过,还有一个xlutils(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能。其实际也只是在xlrd.Book和xlwt.Workbook之间建立了一个管道而已,如下图:

xlutils.copy模块的copy()方法实现了这个功能,示例代码如下:

from xlrd import open_workbook

from xlutils.copy import copy

 

rb = open_workbook('m:\\1.xls')

#通过sheet_by_index()获取的sheet没有write()方法
rs = rb.sheet_by_index(0)

 

wb = copy(rb)
#通过get_sheet()获取的sheet有write()方法

ws = wb.get_sheet(0)

ws.write(0, 0, 'changed!')

 

wb.save('m:\\1.xls')

四、参考

http://pypi.python.org/pypi/xlrd
http://pypi.python.org/pypi/xlwt
http://pypi.python.org/pypi/xlutils

Python 相关文章推荐
python使用xauth方式登录饭否网然后发消息
Apr 11 Python
Python使用内置json模块解析json格式数据的方法
Jul 20 Python
python 获取图片分辨率的方法
Jan 08 Python
对Python中TKinter模块中的Label组件实例详解
Jun 14 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
python自动化UI工具发送QQ消息的实例
Aug 27 Python
Python在OpenCV里实现极坐标变换功能
Sep 02 Python
关于Numpy中的行向量和列向量详解
Nov 30 Python
Python使用os.listdir和os.walk获取文件路径
May 21 Python
Python Unittest原理及基本使用方法
Nov 06 Python
Python 匹配文本并在其上一行追加文本
May 11 Python
Python中的包和模块实例
Nov 22 #Python
Python动态加载模块的3种方法
Nov 22 #Python
收集的几个Python小技巧分享
Nov 22 #Python
Python获取Windows或Linux主机名称通用函数分享
Nov 22 #Python
Python中使用glob和rmtree删除目录子目录及所有文件的例子
Nov 21 #Python
Python中使用SAX解析xml实例
Nov 21 #Python
python sort、sorted高级排序技巧
Nov 21 #Python
You might like
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
php学习 函数 课件
2008/06/15 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
python控制台英汉汉英电子词典
2020/04/23 Python
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
django的ORM模型的实现原理
2019/03/04 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
Python数据库小程序源代码
2019/09/15 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
介绍一下linux的文件权限
2014/07/20 面试题
如何撰写岗位职责
2014/02/01 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
党员个人年度总结
2015/02/14 职场文书
食品质检员岗位职责
2015/04/08 职场文书
建党伟业的观后感
2015/06/01 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers