一、安装xlrd模块:

1、mac下打开终端输入命令:

pip install xlrd

2、验证安装是否成功:

  • 在mac终端输入 python  进入python环境
  • 然后输入 import xlrd

  不报错说明模块安装成功

二、常用方法:

1、导入模块:

import xlrd

2、打开文件:

x1 = xlrd.open_workbook("data.xlsx")

3、获取sheet:

  • 获取所有sheet名字:x1.sheet_names()
  • 获取sheet数量:x1.nsheets
  • 获取所有sheet对象:x1.sheets()
  • 通过sheet名查找:x1.sheet_by_name("test”)
  • 通过索引查找:x1.sheet_by_index(3)
# -*- coding:utf-8 -*-

import xlrd
import os filename = "demo.xlsx"
filePath = os.path.join(os.getcwd(), filename) print filePath # 1、打开文件
x1 = xlrd.open_workbook(filePath) # 2、获取sheet对象
print 'sheet_names:', x1.sheet_names() # 获取所有sheet名字
print 'sheet_number:', x1.nsheets # 获取sheet数量
print 'sheet_object:', x1.sheets() # 获取所有sheet对象
print 'By_name:', x1.sheet_by_name("test") # 通过sheet名查找
print 'By_index:', x1.sheet_by_index(3) # 通过索引查找

输出:

sheet_names: [u' plan', u'team building', u'modile', u'test']
sheet_number: 4
sheet_object: [<xlrd.sheet.Sheet object at 0x10244c190>, <xlrd.sheet.Sheet object at 0x10244c150>, <xlrd.sheet.Sheet object at 0x10244c110>, <xlrd.sheet.Sheet object at 0x10244c290>]
By_name: <xlrd.sheet.Sheet object at 0x10244c290>
By_index: <xlrd.sheet.Sheet object at 0x10244c290>

4、获取sheet的汇总数据:

  • 获取sheet名:sheet1.name
  • 获取总行数:sheet1.nrows
  • 获取总列数:sheet1.ncols
# -*- coding:utf-8 -*-

import xlrd
import os
from datetime import date,datetime filename = "demo.xlsx"
filePath = os.path.join(os.getcwd(), filename)
print filePath # 打开文件
x1 = xlrd.open_workbook(filePath) # 获取sheet的汇总数据
sheet1 = x1.sheet_by_name("plan")
print "sheet name:", sheet1.name # get sheet name
print "row num:", sheet1.nrows # get sheet all rows number
print "col num:", sheet1.ncols # get sheet all columns number

输出:

sheet name: plan
row num: 31
col num: 11
 5、单元格批量读取:
 a)行操作:
  • sheet1.row_values(0)  # 获取第一行所有内容,合并单元格,首行显示值,其它为空。
  • sheet1.row(0)           # 获取单元格值类型和内容
  • sheet1.row_types(0)   # 获取单元格数据类型
# -*- coding:utf-8 -*-

import xlrd
import os
from datetime import date,datetime filename = "demo.xlsx"
filePath = os.path.join(os.getcwd(), filename) x1 = xlrd.open_workbook(filePath)
sheet1 = x1.sheet_by_name("plan") # 单元格批量读取
print sheet1.row_values(0) # 获取第一行所有内容,合并单元格,首行显示值,其它为空。
print sheet1.row(0) # 获取单元格值类型和内容
print sheet1.row_types(0) # 获取单元格数据类型
输出:
[u'learning plan', u'', u'', u'', u'', u'', u'', u'', 123.0, 42916.0, 0]
[text:u'learning plan', empty:u'', empty:u'', empty:u'', empty:u'', empty:u'', empty:u'', empty:u'', number:123.0, xldate:42916.0, bool:0]
array('B', [1, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4])

b) 表操作

  • sheet1.row_values(0, 6, 10)   # 取第1行,第6~10列(不含第10表)
  • sheet1.col_values(0, 0, 5)    # 取第1列,第0~5行(不含第5行)
  • sheet1.row_slice(2, 0, 2)     # 获取单元格值类型和内容
  • sheet1.row_types(1, 0, 2)   # 获取单元格数据类型
# -*- coding:utf-8 -*-

import xlrd
import os
from datetime import date,datetime filename = "demo.xlsx"
filePath = os.path.join(os.getcwd(), filename) print filePath # 1、打开文件
x1 = xlrd.open_workbook(filePath)
sheet1 = x1.sheet_by_name("plan") # 列操作
print sheet1.row_values(0, 6, 10) # 取第1行,第6~10列(不含第10表)
print sheet1.col_values(0, 0, 5) # 取第1列,第0~5行(不含第5行)
print sheet1.row_slice(2, 0, 2) # 获取单元格值类型和内容,同sheet1.row(0)
print sheet1.row_types(1, 0, 2) # 获取单元格数据类型

输出:

[u'', u'', 123.0, 42916.0]
[u'learning plan', u'\u7f16\u53f7', 1.0, 2.0, 3.0]
[number:1.0, text:u'\u7ba1\u7406\u5b66\u4e60']
array('B', [1, 1])
 
6、特定单元格读取:
 a) 获取单元格值:
  • sheet1.cell_value(1, 2)
  • sheet1.cell(1, 2).value
  • sheet1.row(1)[2].value
b) 获取单元格类型:
  • sheet1.cell(1, 2).ctype
  • sheet1.cell_type(1, 2)
  • sheet1.row(1)[2].ctype
# -*- coding:utf-8 -*-

import xlrd
import os
from datetime import date,datetime filename = "demo.xlsx"
filePath = os.path.join(os.getcwd(), filename) x1 = xlrd.open_workbook(filePath)
sheet1 = x1.sheet_by_name("plan") # 特定单元格读取
# 取值
print sheet1.cell_value(1, 2)
print sheet1.cell(1, 2).value
print sheet1.row(1)[2].value #取类型
print sheet1.cell(1, 2).ctype
print sheet1.cell_type(1, 2)
print sheet1.row(1)[2].ctype
 
7、(0,0)转换A1:
  • xlrd.cellname(0, 0)   # (0,0)转换成A1
  • xlrd.cellnameabs(0, 0) # (0,0)转换成$A$1
  • xlrd.colname(30)  # 把列由数字转换为字母表示
# -*- coding:utf-8 -*-

import xlrd
import os filename = "demo.xlsx"
filePath = os.path.join(os.getcwd(), filename) # 打开文件
x1 = xlrd.open_workbook(filePath)
sheet1 = x1.sheet_by_name("plan") # (0,0)转换成A1
print xlrd.cellname(0, 0) # (0,0)转换成A1
print xlrd.cellnameabs(0, 0) # (0,0)转换成$A$1
print xlrd.colname(30) # 把列由数字转换为字母表示

输出:

A1
$A$1
AE
8、数据类型:
  • 空:0
  • 字符串:1
  • 数字:2
  • 日期:3
  • 布尔:4
  • error:5
 
 




python读取excel(xlrd)的更多相关文章

  1. python 读取excel Xlrd模块

    1. 安装xlrd模块 我使用pip安装: cmd ->切换到pip安装所在路径->pip install xlrd->回车 2. 使用 2.1:打开Excel表 导入模块:  im ...

  2. 利用xlrd模块实现Python读取Excel文档

    # -*- coding: cp936 -*- #python读取excel import xlrd def main(): xls=xlrd.open_workbook("d:\\11.x ...

  3. [转] Windows下使用Python读取Excel表格数据

    http://www.python-excel.org/这个网站罗列了很多关于在Python下操作Excel文件的信息,这里选择了其介绍的第一个模块xlrd . xlrd 0.9.2版本跨平台同时支持 ...

  4. Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  5. python 读取excel数据并将测试结果填入Excel

    python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...

  6. python读取excel中单元格的内容返回的5种类型

    (1) 读取单个sheetname的内容. 此部分转自:https://www.cnblogs.com/xxiong1031/p/7069006.html python读取excel中单元格的内容返回 ...

  7. python读取excel,数字都是浮点型,日期格式是数字的解决办法

    excel文件内容: 读取excel: # coding=utf-8 import xlrd import sys reload(sys) sys.setdefaultencoding('utf-8' ...

  8. 记录:python读取excel文件

    由于最近老是用到python读取excel文件,所以特意记录一下python读取excel文件的大体框架. 库:xlrd(读),直接pip安装即可.想要写excel文件的话,安装xlwd库即可,也是直 ...

  9. python操作excel xlrd和xlwt的使用

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

随机推荐

  1. Hive| DDL| DML

    类型转换 可以使用CAST操作显示进行数据类型转换 例如CAST(' 转换成整数1:如果强制类型转换失败,如执行CAST('X' AS INT),表达式返回空值 NULL. : jdbc:hive2: ...

  2. MySQL高级02

    索引简介 索引(Index)是帮助MySQL高效获取数据的数据结构.可以得到索引的本质:索引是数据结构.你可以简单理解为“排好序的快速查找数据结构”. 在数据之外,数据库系统还维护着满足特定查找算法的 ...

  3. PAT (Basic Level) Practise - 成绩排名

    1004. 成绩排名 题目链接:https://www.patest.cn/contests/pat-b-practise/1004 读入n名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓 ...

  4. OpenJ_Bailian 2810 完美立方

    题目地址: https://vjudge.net/problem/OpenJ_Bailian-2810 形如a3= b3 + c3 + d3的等式被称为完美立方等式.例如123= 63 + 83 + ...

  5. Shiro笔记(二)Shiro集成SpringMVC的环境配置

    0.pom文件引入 <!-- SECURITY begin --> <dependency> <groupId>org.apache.shiro</group ...

  6. webstorm 2017 激活破解方法大全

    webstorm 作为最近最火的前端开发工具,也确实对得起那个价格,但是秉着勤俭节约的传统美德,我们肯定是能省则省啊. 方法一:(更新时间:2018/4/8)v3.3 注册时,在打开的License ...

  7. Ubuntu ssh-keygen 生成公钥并添加到远程服务器上

    1. 在本地生成公钥, ssh-keygen -t RSA -b 800 2. cd /root/.ssh 3. ssh-copy-id -i  id_rsa.pub 远程服务器IP 这一步需要输入远 ...

  8. html5手势操作与多指操作封装与Canvas图片裁切实战

    当前情况,移动端的开发占比越来越高,单指的拖拽触碰等操作是常规需要.特殊的多指操作与手势操作还需另做处理,而且还涉及到兼容性问题. // 屏幕上存在两根或两根以上的手指 时触发 仅IOS存在手势事件, ...

  9. byte ---> hex String

    public static String byte2HexString(byte[] b){ String ret = ""; ;i<b.lenght;i++){ Strin ...

  10. IO流关键字