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为tornado添加recaptcha验证码功能
Feb 26 Python
用Python实现QQ游戏大家来找茬辅助工具
Sep 14 Python
跟老齐学Python之有点简约的元组
Sep 24 Python
Python中的getopt函数使用详解
Jul 28 Python
numpy实现合并多维矩阵、list的扩展方法
May 08 Python
python实现windows壁纸定期更换功能
Jan 21 Python
对python numpy.array插入一行或一列的方法详解
Jan 29 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 Python
python处理RSTP视频流过程解析
Jan 11 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
Jun 12 Python
详解Python的爬虫框架 Scrapy
Aug 03 Python
pytorch __init__、forward与__call__的用法小结
Feb 27 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分页显示制作详细讲解
2006/10/09 PHP
浅析PHP水印技术
2007/02/14 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
php实现读取内存顺序号
2015/03/29 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
Javascript 代码也可以变得优美的实现方法
2009/06/22 Javascript
javascript JSON操作入门实例
2010/04/16 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
JavaScript插件Tab选项卡效果
2017/11/14 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
Python操作SQLite简明教程
2014/07/10 Python
python使用str & repr转换字符串
2016/10/13 Python
Python中装饰器学习总结
2018/02/10 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
Python 项目转化为so文件实例
2019/12/23 Python
Pytorch之finetune使用详解
2020/01/18 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
英国航空官网:British Airways
2016/09/11 全球购物
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
linux下进程间通信的方式
2014/12/23 面试题
环境工程大学生个人的自我评价
2013/10/08 职场文书
消防安全员岗位职责
2014/03/10 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书