功能:读取一个excel里的第2个sheet,将该sheet的内容全部输出。

 #coding=utf8
import xlrd def read_excel():
workbook = xlrd.open_workbook('demo.xlsx')
sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始
rowNum = sheet2.nrows
colNum = sheet2.ncols llst = []
for i in range(rowNum):
lst = []
for j in range(colNum):
lst.append(sheet2.cell_value(i, j))
llst.append(lst) for i in range(rowNum):
for j in range(colNum):
print llst[i][j],'\t\t',
print if __name__ == '__main__':
read_excel()

notes:

python对于缩进非常严苛。如果最后两句话不小心向后缩进了一下,与17行的for对齐了,那说明这两句话是read_excel函数体内部的。那就乱套了。

指定一个excel里的具体哪一个sheet,即可以按序号顺序来定位(比如第一个sheet,第2个sheet),也可以按名字来找(比如第2个sheet如果名字叫‘Sheet2’的话,就用

workbook.sheet_by_name('Sheet2') 来定位sheet)

获取一个cell里面的内容,可以有多种方式,比如:

sheet2.cell_value(1,0)
sheet2.row(1)[0].value

sheet2.cell(1,0).value

注意。读取到的excel的表格里的值都是unicode模式的。这种情况下如果想正确输出的话,直接print就可以。比如放在list里面,依次对list的每个元素进行print。

但是不能直接print lst。这样的话打出来还是unicode的形式。

正常情况下对于unicode的对象,用encode可以将一个unicode对象转换为参数中编码格式的普通字符。这一部分可参考 ref  ref2

print如果不想换行的话,直接在print结束后加一个逗号即可。

如果想实现c++里endl一样的换行,直接打上一行print就行了,不需要任何参数。

=========  ==========  =========  ==========  =========  ==========

下面代码纯粹为了展示一下关于excel的其他操作。

ref1     ref2     ref3 (ref1代码很清晰,ref3列出了xlrd,xlwt的一些接口可以方便参考)

 #coding=utf8
import xlrd def read_excel():
# 打开文件
workbook = xlrd.open_workbook('demo.xlsx')
# 获取所有sheet
#print workbook.sheet_names() # [u'Sheet1', u'Sheet2']
sheet2_name = workbook.sheet_names()[1] # 根据sheet索引或者名称获取sheet内容
sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始
sheet2 = workbook.sheet_by_name('Sheet2') # sheet的名称,行数,列数
print 'sheet的名称,行数,列数'
print sheet2.name,sheet2.nrows,sheet2.ncols rowNum = sheet2.nrows
colNum = sheet2.ncols
# 获取整行和整列的值(数组)
rows = sheet2.row_values(3) # 获取第四行内容
cols = sheet2.col_values(2) # 获取第三列内容
print '第四行:'
print rows llst = []
for i in range(rowNum):
lst = []
for j in range(colNum):
lst.append(sheet2.cell_value(i, j))
llst.append(lst) for i in range(rowNum):
for j in range(colNum):
print llst[i][j],'\t\t',
print if __name__ == '__main__':
read_excel()

实例:

原excel:

像电话号码、年龄后面还带小数,还没来得及处理。

其他参考资料:ref  ref2

python处理excel(一):读的更多相关文章

  1. python操作excel的读、计算、写----xlrd、copy

    import xlrd from xlutils.copy import copy class ExcelUtil: def __init__(self,excel_path=None,index=N ...

  2. python处理excel之读:xlrd模块

    # -*- coding:utf-8 -*- import xlrd path = r'D:/工作簿1(已自动还原).xlsx' # 打开excel文件读取数据 data = xlrd.open_wo ...

  3. python操作excel(xlwt写,xlrd读)基本方法

    python操作excle在测试工作中还是很有用的,比如读取测试数据,回写测试结果到excel. 1.安装 pip install xlwt pip install xlrd 2.写excel # 导 ...

  4. 用python读写excel(xlrd、xlwt)

    最近需要从多个excel表里面用各种方式整理一些数据,虽然说原来用过java做这类事情,但是由于最近在学python,所以当然就决定用python尝试一下了.发现python果然简洁很多.这里简单记录 ...

  5. 使用Python对Excel表格进行简单的读写操作(xlrd/xlwt)

    算是一个小技巧吧,只是进行一些简单的读写操作.让人不爽的是xlrd和xlwt是相对独立的,两个模块的对象不能通用,读写无法连贯操作,只能单独读.单独写,尚不知道如何解决. #①xlrd(读) #cod ...

  6. python操作excel表格(xlrd/xlwt)

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  7. [转]用Python读写Excel文件

    [转]用Python读写Excel文件   转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交 ...

  8. python 处理 Excel 表格

    see: http://www.cnblogs.com/sunada2005/p/3193300.html 一.可使用的第三方库 python中处理excel表格,常用的库有xlrd(读excel)表 ...

  9. python 解析Excel

    python 解析Excel 公司背景:好吧LZ太懒了.略... 原由起因:公司老板发话要导出公司数据库中符合条件的数据,源数据有400万,符合条件的大概有70万左右吧. 最终目的:符合条件的数据并生 ...

  10. Python操作excel表格

    用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件 注:本篇代码在Python3环境下运行 首先导入两个模块xlrd和xlwt,xlrd用来读取Exc ...

随机推荐

  1. 关于Oracle中的字符的比较

    1.Oracle比较字符串是根据ASCII码来的,第一个字母的ASCII大小比较如果相等再比较下一个: 函数来说明: CREATE OR REPLACE FUNCTION MinOrMax(para1 ...

  2. Python -- 数据库连接

    1.连接MySQL(x64系统装不上x32版本) MySQL现在都不支持Python3 import MySQLdb con = MySQLdb.connect(host='127.0.0.1', u ...

  3. Boosting和Bagging的异同

    二者都是集成学习算法,都是将多个弱学习器组合成强学习器的方法. 1.Bagging (主要关注降低方差) Bagging即套袋法,其算法过程如下: A)从原始样本集中抽取训练集.每轮从原始样本集中使用 ...

  4. Polymorphic form--多态表单

    一个ruby on rails项目,用户和公司的模型都有地址. 我要创建一个地址表,包含用户和公司表的引用,比直接做下去要好一点,这回让我的数据库设计保持干净. 我的第一印象是,这似乎很难实现,外面所 ...

  5. java 拦截器、过滤器、监听器

    一.理解Struts2拦截器 1. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现. 2. ...

  6. 移动端H5适配方法(盒子+图片+文字)

    一.怎么让H5页面适应手机 a.利用meta标签 <meta name="viewport" content="width=device-width,initial ...

  7. Func的介绍——c#封装的代理

    经常看到  Func<int, bool>...这样的写法,看到这样的就没有心思看下去了.我们学技术还是需要静下心来. 对Func<int,bool>的Func转到定义看它的解 ...

  8. 【模板 && 拓扑】 Dijkstra 单源最短路径算法

    话不多说上代码 链式前向星233 #include<bits/stdc++.h> using namespace std; ,_max=0x3fffffff; //链式前向星 struct ...

  9. HDU 1142

    A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  10. Notepad++怎么使用正则替换

    前言:工作中在oracle中写触发器的sql时,表字段有几十个,修改起来非常不方便,于是采用了Notepad++的替换 案例: 想把 v_update_time,v_create_time,v_rcv ...