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 相关文章推荐
python3实现短网址和数字相互转换的方法
Apr 28 Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 Python
Pycharm以root权限运行脚本的方法
Jan 19 Python
python 判断矩阵中每行非零个数的方法
Jan 26 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
在Tensorflow中实现leakyRelu操作详解(高效)
Jun 30 Python
python实现感知机模型的示例
Sep 30 Python
Python Http请求json解析库用法解析
Nov 28 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 Python
python处理json数据文件
Apr 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
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
2017/07/07 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
介绍一下Linux中的链接
2016/06/05 面试题
物流管理专业职业生涯规划书
2014/01/06 职场文书
房地产销售计划书
2014/01/10 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
市场调查策划方案
2014/06/10 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
房屋转让协议书
2014/10/18 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
硕士学位论文评语
2014/12/31 职场文书
焦裕禄观后感
2015/06/03 职场文书
Python OpenCV超详细讲解基本功能
2022/04/02 Python