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上传文件到百度网盘代码分享
Nov 08 Python
Python利用operator模块实现对象的多级排序详解
May 09 Python
Python实现简单过滤文本段的方法
May 24 Python
python使用fcntl模块实现程序加锁功能示例
Jun 23 Python
简单谈谈python中的语句和语法
Aug 10 Python
python如何把嵌套列表转变成普通列表
Mar 20 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
matplotlib quiver箭图绘制案例
Apr 17 Python
基于pytorch中的Sequential用法说明
Jun 24 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
Jan 28 Python
如何使用Python对NetCDF数据做空间相关分析
Apr 21 Python
新手必备Python开发环境搭建教程
May 28 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
用缓存实现静态页面的测试
2006/12/06 PHP
PHP学习之数组的定义和填充
2011/04/17 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
用php守护另一个php进程的例子
2015/02/13 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
ASP SQL防注入的方法
2008/12/25 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
2016/02/06 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
Python读取网页内容的方法
2015/07/30 Python
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
python反转列表的三种方式解析
2019/11/08 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
大数据分析用java还是Python
2020/07/06 Python
Pandas之缺失数据的实现
2021/01/06 Python
次世代生活态度:Hypebeast
2018/07/05 全球购物
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
android面试问题与答案
2016/12/27 面试题
运动会广播稿80字
2014/01/23 职场文书
购房协议书
2014/04/11 职场文书
安全责任书怎么写
2014/07/28 职场文书
导游词之扬州大明寺
2019/10/09 职场文书