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使用新浪微博api上传图片到微博示例
Jan 10 Python
Python实现partial改变方法默认参数
Aug 18 Python
python中__slots__用法实例
Jun 04 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
Python常见数据类型转换操作示例
May 08 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
Python动态导入模块和反射机制详解
Feb 18 Python
使用python自动追踪你的快递(物流推送邮箱)
Mar 17 Python
Python函数默认参数常见问题及解决方案
Mar 26 Python
没编程基础可以学python吗
Jun 17 Python
PyCharm最新激活码(2020/10/27全网最新)
Oct 27 Python
Python自动化爬取天眼查数据的实现
Jun 15 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
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
php实现简单洗牌算法
2013/06/18 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
Javascript 入门基础学习
2010/03/10 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
python读写csv文件实例代码
2019/07/05 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
巴西购物网站:Submarino
2020/01/19 全球购物
研究生自荐信
2013/10/09 职场文书
鸿星尔克广告词
2014/03/21 职场文书
仓库管理计划书
2014/05/04 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
大学生入党积极分子党校学习思想汇报
2014/10/25 职场文书
护士2014年终工作总结
2014/11/11 职场文书