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中的hashlib和base64加密模块使用实例
Sep 02 Python
python 读写txt文件 json文件的实现方法
Oct 22 Python
Python的IDEL增加清屏功能实例
Jun 19 Python
PyTorch学习笔记之回归实战
May 28 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
Numpy之random函数使用学习
Jan 29 Python
关于ZeroMQ 三种模式python3实现方式
Dec 23 Python
tensorflow之自定义神经网络层实例
Feb 07 Python
django 实现手动存储文件到model的FileField
Mar 30 Python
基于Python 函数和方法的区别说明
Mar 24 Python
Django中celery的使用项目实例
Jul 07 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利用header函数下载各种文件
2016/08/24 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
webpack4简单入门实例
2018/09/06 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
python检测远程服务器tcp端口的方法
2015/03/14 Python
Python之os操作方法(详解)
2017/06/15 Python
pycharm安装和首次使用教程
2018/08/27 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
python路径的写法及目录的获取方式
2019/12/26 Python
Python ArgumentParse的subparser用法说明
2020/04/20 Python
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
大学班长的职责
2014/01/27 职场文书
政法学院毕业生求职信
2014/02/28 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
幼儿评语大全
2014/04/30 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
出国签证在职证明范本
2014/11/24 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python