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 执行字符串表达式函数(eval exec execfile)
Aug 11 Python
python爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
Python使用Django实现博客系统完整版
Sep 29 Python
Python基于多线程实现ping扫描功能示例
Jul 23 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
Jun 26 Python
python实现微信自动回复机器人功能
Jul 11 Python
Python数据持久化存储实现方法分析
Dec 21 Python
tensorflow 实现自定义梯度反向传播代码
Feb 10 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 Python
Python求区间正整数内所有素数之和的方法实例
Oct 13 Python
Python通过m3u8文件下载合并ts视频的操作
Apr 16 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
SONY ICF-F10中波修复记
2021/03/02 无线电
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
2014/12/18 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
javascript 拖放效果实现代码
2010/01/22 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
Python新手如何理解循环加载模块
2020/05/29 Python
如何利用python发送邮件
2020/09/26 Python
Django如何实现防止XSS攻击
2020/10/13 Python
销售行政专员职责
2014/01/03 职场文书
2014年开学第一课活动方案
2014/03/06 职场文书
《池塘边的叫声》教学反思
2014/04/12 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
七年级作文之雪景
2019/11/18 职场文书
导游词之日本富士山
2020/01/06 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL
Redis基本数据类型String常用操作命令
2022/06/01 Redis