python使用xlrd模块读写Excel文件的方法


Posted in Python onMay 06, 2015

本文实例讲述了python使用xlrd模块读写Excel文件的方法。分享给大家供大家参考。具体如下:

一、安装xlrd模块

到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。

二、使用介绍

1、导入模块

import xlrd

2、打开Excel文件读取数据

data = xlrd.open_workbook('excelFile.xls')

3、使用技巧

获取一个工作表

table = data.sheets()[0] #通过索引顺序获取 

table = data.sheet_by_index(0) #通过索引顺序获取 

table = data.sheet_by_name(u'Sheet1')#通过名称获取

获取整行和整列的值(数组)

table.row_values(i) 

table.col_values(i)

获取行数和列数

nrows = table.nrows 

ncols = table.ncols

循环行列表数据

for i in range(nrows ): 

print table.row_values(i)

单元格

cell_A1 = table.cell(0,0).value 

cell_C4 = table.cell(2,3).value

使用行列索引

cell_A1 = table.row(0)[0].value 

cell_A2 = table.col(1)[0].value

简单的写入

row = 0 

col = 0 

# 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error 

ctype = 1 value = '单元格的值' 

xf = 0 # 扩展的格式化 

table.put_cell(row, col, ctype, value, xf) 

table.cell(0,0)  #单元格的值' 

table.cell(0,0).value #单元格的值'

三、Demo代码

Demo代码其实很简单,就是读取Excel数据。

# -*- coding: utf-8 -*-
 import xdrlib ,sys
 import xlrd
 def open_excel(file= 'file.xls'):
   try:
     data = xlrd.open_workbook(file)
     return data
   except Exception,e:
     print str(e)
 #根据索引获取Excel表格中的数据  参数:file:Excel文件路径   colnameindex:表头列名所在行的所以 ,by_index:表的索引
 def excel_table_byindex(file= 'file.xls',colnameindex=0,by_index=0):
   data = open_excel(file)
   table = data.sheets()[by_index]
   nrows = table.nrows #行数
   ncols = table.ncols #列数
   colnames = table.row_values(colnameindex) #某一行数据
   list =[]
   for rownum in range(1,nrows):
     row = table.row_values(rownum)
     if row:
       app = {}
       for i in range(len(colnames)):
         app[colnames[i]] = row[i]
       list.append(app)
   return list
 #根据名称获取Excel表格中的数据  参数:file:Excel文件路径   colnameindex:表头列名所在行的所以 ,by_name:Sheet1名称
 def excel_table_byname(file= 'file.xls',colnameindex=0,by_name=u'Sheet1'):
   data = open_excel(file)
   table = data.sheet_by_name(by_name)
   nrows = table.nrows #行数
   colnames = table.row_values(colnameindex) #某一行数据
   list =[]
   for rownum in range(1,nrows):
     row = table.row_values(rownum)
     if row:
       app = {}
       for i in range(len(colnames)):
         app[colnames[i]] = row[i]
       list.append(app)
   return list
 def main():
  tables = excel_table_byindex()
  for row in tables:
    print row
  tables = excel_table_byname()
  for row in tables:
    print row
 if __name__=="__main__":
   main()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python实现Mysql数据库连接池实例详解
Apr 11 Python
解决python爬虫中有中文的url问题
May 11 Python
Python版名片管理系统
Nov 30 Python
python实现图片转字符小工具
Apr 30 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
python中关于数据类型的学习笔记
Jul 19 Python
基于Python采集爬取微信公众号历史数据
Nov 27 Python
python爬虫今日热榜数据到txt文件的源码
Feb 23 Python
windows安装python超详细图文教程
May 21 Python
在Python中使用全局日志时需要注意的问题
May 06 #Python
python通过post提交数据的方法
May 06 #Python
python实现逆波兰计算表达式实例详解
May 06 #Python
编写Python脚本批量下载DesktopNexus壁纸的教程
May 06 #Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 #Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
May 05 #Python
Python实现的HTTP并发测试完整示例
Apr 23 #Python
You might like
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
php 移除数组重复元素的一点说明
2008/11/27 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
关于js datetime的那点事
2011/11/15 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
微信小程序仿美团城市选择
2018/06/06 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
python获取本机mac地址和ip地址的方法
2015/04/29 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
Python实现爬取网页中动态加载的数据
2020/08/17 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
大专毕业生自我鉴定
2013/11/21 职场文书
建筑人员岗位职责
2013/12/25 职场文书
市三好学生主要事迹
2014/01/28 职场文书
保护环境建议书400字
2014/05/13 职场文书
广告宣传策划方案
2014/05/21 职场文书
四风自我剖析材料
2014/09/30 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
大国崛起观后感
2015/06/02 职场文书
小学数学教学反思范文
2016/02/16 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
Ajax实现异步加载数据
2021/11/17 Javascript