Python读excel——xlrd

Python读取Excel表格,相比xlwt来说,xlrd提供的接口比较多,但过程也有几个比较麻烦的问题,比如读取日期、读合并单元格内容。
下面先看看基本的操作:

图表数据

整体思路为,打开文件,选定表格,读取行列内容,读取表格内数据
详细代码如下:

import xlrd

from datetime import date,datetime

file = 'test3.xlsx'

def read_excel():

	wb = xlrd.open_workbook(filename=file)#打开文件

	print(wb.sheet_names())#获取所有表格名字

	sheet1 = wb.sheet_by_index(0)#通过索引获取表格

	sheet2 = wb.sheet_by_name('年级')#通过名字获取表格

	print(sheet1,sheet2)

	print(sheet1.name,sheet1.nrows,sheet1.ncols)

	rows = sheet1.row_values(2)#获取行内容

	cols = sheet1.col_values(3)#获取列内容

	print(rows)

	print(cols)

	print(sheet1.cell(1,0).value)#获取表格里的内容,三种方式

	print(sheet1.cell_value(1,0))

	print(sheet1.row(1)[0].value)

结果图

那么问题来了,上面的运行结果中红框框中的字段明明是出生日期,可显示的确实浮点数;同时合并单元格里面应该是有内容的,结果不能为空。

别急,我们来一一解决这两个问题:

1.python读取excel中单元格内容为日期的方式

python读取excel中单元格的内容返回的有5种类型,即上面例子中的ctype:
ctype : 0 empty,1 string,2 number, 3 date,4 boolean,5 error
即date的ctype=3,这时需要使用xlrd的xldate_as_tuple来处理为date格式,先判断表格的ctype=3时xldate才能开始操作。

详细代码如下:

import xlrd

from datetime import date,datetime

print(sheet1.cell(1,2).ctype)

date_value = xlrd.xldate_as_tuple(sheet1.cell_value(1,2),wb.datemode)

print(date_value)

print(date(*date_value[:3]))

print(date(*date_value[:3]).strftime('%Y/%m/%d'))

2.获取合并单元格的内容

在操作之前,先介绍一下merged_cells()用法,merged_cells返回的这四个参数的含义是:(row,row_range,col,col_range),其中[row,row_range)包括row,不包括row_range,col也是一样,即(1, 3, 4, 5)的含义是:第1到2行(不包括3)合并,(7, 8, 2, 5)的含义是:第2到4列合并。

详细代码如下:

print(sheet1.merged_cells)
print(sheet1.cell_value(1,3))
print(sheet1.cell_value(4,3))
print(sheet1.cell_value(6,1))

发现规律了没?是的,获取merge_cells返回的row和col低位的索引即可! 于是可以这样批量获取:

详细代码如下:

merge = []
print(sheet1.merged_cells) for (rlow,rhigh,clow,chigh) in sheet1.merged_cells:
merge.append([rlow,clow]) for index in merge:
print(sheet1.cell_value(index[0],index[1]))

运行结果跟上图一样,如下:

Python读写Excel表格,就是这么简单粗暴又好用,如果觉得不错,对你工作中有帮助,动动手指分享给更多人哦

Python读excel——xlrd的更多相关文章

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

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

  2. python 读 excel 模块: xlrd

    主要来自:[ python中使用xlrd.xlwt操作excel表格详解 ] 为了方便阅读, 我将原文两个模块拆分为两篇博文: [ python 读 excel 模块: xlrd ] [ python ...

  3. python处理Excel - xlrd xlwr openpyxl

    python处理Excel - xlrd xlwr openpyxl 1 xlrd和xlwt Todo: 使用xlrd和xlwt读写Excel文件的方法和示例代码,待续... 参考链接: Creati ...

  4. python读Excel方法(xlrd)

    在我们做平常工作或自动化测试中都会遇到操作excel,Python处理exc相当顺手,如何通过python操作excel,当然python操作excel的库有很多,比如pandas,xlwt/xlrd ...

  5. Python 读Excel数据

    一.读取Excel数据的步骤及方式: 1.打开Excel文件 data = xlrd.open_workbook(r'D:\Interface_test\test_data\测试用例.xlsx') 2 ...

  6. python读取excel(xlrd)

     一.安装xlrd模块: 1.mac下打开终端输入命令: pip install xlrd 2.验证安装是否成功: 在mac终端输入 python  进入python环境 然后输入 import xl ...

  7. python 读取excel Xlrd模块

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

  8. python读Excel

    import xlrd def open_excel(fileName="TransInfo.xlsx"): try: fileHandler = xlrd.open_workbo ...

  9. python 读excel表操作

    import xlrd # 打开文件 data = xlrd.open_workbook('测试表.xlsx') # 查看工作表 data.sheet_names() print("shee ...

随机推荐

  1. TS - 问题解决力 - 上篇

    本文是已读书籍的内容摘要,少部分有轻微改动,但不影响原文表达. <麦肯锡工作法 - 个人竞争力提升50%的7堂课> ISBN: 9787508644691 https://book.dou ...

  2. Linux杀毒软件(ClamAV)

    Clam AntiVirus是一个类UNIX系统上使用的反病毒软件包.主要应用于邮件服务器,采用多线程后台操作,可以自动升级病毒库. 一.下载安装 1.下载 clamav官网:http://www.c ...

  3. Appium移动自动化测试-----(五) java-client安装与测试

    前提条件 当你点击这一章时,说明你是打算使用 Java 语言编写 appium 自动化测试脚本的. 1.安装 Java 环境 ,我想这一步你已经搞定了 2.安装 IntelliJ IDEA , 当然, ...

  4. mysql大小写敏感配置

    mysql大小写敏感配置show global variables like '%lower_case%'; show global variables like '%lower_case%'; &l ...

  5. SUPPA 可变剪切分析

      SUPPA是一款通过转录本定量来获取可变剪切定量结果的软件.转录本的定量方式有很多,例如count,FPKM, TPM等,作者建议使用TPM,因为先均一化了基因的长度,然后均一化了测序的深度.同时 ...

  6. LeetCode 110. 平衡二叉树(Balanced Binary Tree) 15

    110. 平衡二叉树 110. Balanced Binary Tree 题目描述 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点的左右两个子树 ...

  7. 035 Android 广播(BroadCastReceiver)

    1.介绍 2.实现方法 3.注册广播 (1)静态广播 在AndroidManifest.xml文件中注册广播 <intent-filter>为过滤器 <receiver androi ...

  8. 关于/etc/rc.local

    /etc/rc.d/rc.local 用于添加开机启动命令 /etc/rc.local是/etc/rc.d/rc.local的软连接 简单来说 开机自启的

  9. URI和URL的关系与区别

    首先给大家举个例子,有一家公司的总经理,某天,给了我一张名片,上面写了他的头衔,北京XXX公司总经理 张三,还有他的办公室地址,北京市海淀区长安街35号北京XXX公司总经理办公室,那么,我以后给我的朋 ...

  10. Python26之字典2(内置函数)

    一.工厂函数的概念 和序列类型的工厂函数一样,dict()也是一个工厂函数,本质上是一个类,Python程序无处不对象的概念可见一斑 二.字典类型内置函数的用法 1.fromkeys(iterable ...