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中的内存泄漏
Apr 23 Python
python实现同时给多个变量赋值的方法
Apr 30 Python
Python抓取淘宝下拉框关键词的方法
Jul 08 Python
Python脚本实现自动发带图的微博
Apr 27 Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
Python 脚本获取ES 存储容量的实例
Dec 27 Python
python利用ffmpeg进行录制屏幕的方法
Jan 10 Python
python并发编程 Process对象的其他属性方法join方法详解
Aug 20 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
Python英文文章词频统计(14份剑桥真题词频统计)
Oct 13 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 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
URL Rewrite的设置方法
2007/01/02 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
Windows下安装python2.7及科学计算套装
2015/03/05 Python
Python函数参数类型*、**的区别
2015/04/11 Python
在Django的模型中添加自定义方法的示例
2015/07/21 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
Sanic框架路由用法实例分析
2018/07/16 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
护理专业毕业生自我鉴定
2013/10/08 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
迎国庆演讲稿
2014/09/15 职场文书
2016年父亲节寄语
2015/12/04 职场文书