python处理excel(一):读
功能:读取一个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:

像电话号码、年龄后面还带小数,还没来得及处理。
python处理excel(一):读的更多相关文章
- python操作excel的读、计算、写----xlrd、copy
import xlrd from xlutils.copy import copy class ExcelUtil: def __init__(self,excel_path=None,index=N ...
- python处理excel之读:xlrd模块
# -*- coding:utf-8 -*- import xlrd path = r'D:/工作簿1(已自动还原).xlsx' # 打开excel文件读取数据 data = xlrd.open_wo ...
- python操作excel(xlwt写,xlrd读)基本方法
python操作excle在测试工作中还是很有用的,比如读取测试数据,回写测试结果到excel. 1.安装 pip install xlwt pip install xlrd 2.写excel # 导 ...
- 用python读写excel(xlrd、xlwt)
最近需要从多个excel表里面用各种方式整理一些数据,虽然说原来用过java做这类事情,但是由于最近在学python,所以当然就决定用python尝试一下了.发现python果然简洁很多.这里简单记录 ...
- 使用Python对Excel表格进行简单的读写操作(xlrd/xlwt)
算是一个小技巧吧,只是进行一些简单的读写操作.让人不爽的是xlrd和xlwt是相对独立的,两个模块的对象不能通用,读写无法连贯操作,只能单独读.单独写,尚不知道如何解决. #①xlrd(读) #cod ...
- python操作excel表格(xlrd/xlwt)
最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...
- [转]用Python读写Excel文件
[转]用Python读写Excel文件 转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交 ...
- python 处理 Excel 表格
see: http://www.cnblogs.com/sunada2005/p/3193300.html 一.可使用的第三方库 python中处理excel表格,常用的库有xlrd(读excel)表 ...
- python 解析Excel
python 解析Excel 公司背景:好吧LZ太懒了.略... 原由起因:公司老板发话要导出公司数据库中符合条件的数据,源数据有400万,符合条件的大概有70万左右吧. 最终目的:符合条件的数据并生 ...
- Python操作excel表格
用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件 注:本篇代码在Python3环境下运行 首先导入两个模块xlrd和xlwt,xlrd用来读取Exc ...
随机推荐
- Flow类注释解读
参考: (1)https://docs.oracle.com/javase/specs/jls/se7/html/jls-16.html (2)https://docs.oracle.com/java ...
- shell中的(),{}几种语法用法
转自:https://www.cnblogs.com/HKUI/p/6423918.html 查看脚本语法是否有错误:bash -n modify_suffix.sh跟踪执行sh -x modify_ ...
- GBDT多分类示例
相当于每次都是用2分类,然后不停的训练,最后把所有的弱分类器来进行汇总 样本编号 花萼长度(cm) 花萼宽度(cm) 花瓣长度(cm) 花瓣宽度 花的种类 1 5.1 3.5 1.4 0.2 山鸢尾 ...
- Linux-(touch,cat,nl,more|less,head|tail)
touch命令 1.命令格式: touch [选项]... 文件... 2.命令参数: -a 或--time=atime或--time=access或--time=use 只更改存取时间. -c ...
- SpringCloud源码解读
http://blog.didispace.com/Spring-Cloud%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/
- mysql RC下不存在则插入
mysql版本:5.7 目的:在RC下,name列上仅有key索引,并发插入name时不出现重复数据 RC不加gap lock,并且复合select语句是不加锁的快照读,导致两个事务同时进行都可插入, ...
- json list数据递归生成树状层级JSON
<!DOCTYPE html> <html> <head> <script> var data=[ {"id":"aaa& ...
- echarts 雷达图的个性化设置
echarts 雷达图的个性化设置 function test() { let myChart = echarts.init(document.getElementById('levelImage') ...
- JAVA-4NIO之Channel之间的数据传输
转载:自并发编程网ifeve.com 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个c ...
- Node.js中setTimeout和setInterval的使用
Node.js和js一样也有计时器,超时计时器.间隔计时器.及时计时器,它们以及process.nextTick(callback)函数来实现事件调度.今天先学下setTimeout和setInter ...