1 xlrd第三方库

注意:xlrd较新版本不支持读xlsx表,需安装1.2.0版本(pip install xlrd==1.2.0)或使用其他库。

xlrd库官方文档:https://xlrd.readthedocs.io/en/latest/

2 xlrd基础演示

import xlrd

# 获取工作䈬workbook对象
book = xlrd.open_workbook("Excel表.xlsx")
print("Excel文件中sheet数量:{0}".format(book.nsheets))
print("Excel文件中sheet名称列表:{0}".format(book.sheet_names()))
# 获取工作表sheet对象
sh_ = book.sheet_by_name("sheet1") # 通过sheet名称获取
sh = book.sheet_by_index(0) # 通过sheet索引获取
print("sheet名称:{0} 总行数:{1} 总列数:{2}".format(sh.name, sh.nrows, sh.ncols))
print("所有单元格值组成的二维列表:{0}".format(sh._cell_values))
print("------------------------单元格操作-------------------------")
print("B2单元格对象:{0}".format(sh.cell(rowx=1, colx=1)))
print("B2单元格的值:{0}".format(sh.cell_value(rowx=1, colx=1)))
print("B2单元格的值:{0}".format(sh.cell(rowx=1, colx=1).value))
print("B2单元格的格式:{0}".format(sh.cell_type(rowx=1, colx=1)))
print("B2单元格的格式:{0}".format(sh.cell(rowx=1, colx=1).ctype))
print("单元格格式映射:0-empty,1-string,2-number,3-date,4-boolean,5-error")
print("------------------------行操作-------------------------")
print("第一行所有单元格对象组成的列表:{0}".format(sh.row(rowx=0)))
print("第一行所有单元格数据组成的列表:{0}".format(sh.row_values(rowx=0)))
print("第一行中第二列至第三列单元格数据组成的列表:{0}".format(sh.row_values(rowx=0, start_colx=1, end_colx=3)))
print("------------------------列操作-------------------------")
print("第一列所有单元格对象组成的列表:{0}".format(sh.col_slice(colx=0)))
print("第一列所有单元格数据组成的列表:{0}".format(sh.col_values(colx=0)))
print("第一列中第二行至第三行单元格数据组成的列表:{0}".format(sh.col_values(colx=0, start_rowx=1, end_rowx=3)))

返回结果:

Excel文件中sheet数量:2
Excel文件中sheet名称列表:['sheet1', 'Sheet2']
sheet名称:sheet1 总行数:5 总列数:5
所有单元格值组成的二维列表:[['A-1', 'B-1', 'C-1', 'D-1', 'E-1'], ['A-2', 'B-2', 'C-2', 'D-2', 'E-2'], ['A-3', 'B-3', 'C-3', 'D-3', 'E-3'], ['A-4', 'B-4', 'C-4', 'D-4', 'E-4'], ['A-5', 'B-5', 'C-5', 'D-5', 'E-5']]
------------------------单元格操作-------------------------
B2单元格对象:text:'B-2'
B2单元格的值:B-2
B2单元格的值:B-2
B2单元格的格式:1
B2单元格的格式:1
单元格格式映射:0-empty,1-string,2-number,3-date,4-boolean,5-error
------------------------行操作-------------------------
第一行所有单元格对象组成的列表:[text:'A-1', text:'B-1', text:'C-1', text:'D-1', text:'E-1']
第一行所有单元格数据组成的列表:['A-1', 'B-1', 'C-1', 'D-1', 'E-1']
第一行中第二列至第三列单元格数据组成的列表:['B-1', 'C-1']
------------------------列操作-------------------------
第一列所有单元格对象组成的列表:[text:'A-1', text:'A-2', text:'A-3', text:'A-4', text:'A-5']
第一列所有单元格数据组成的列表:['A-1', 'A-2', 'A-3', 'A-4', 'A-5']
第一列中第二行至第三行单元格数据组成的列表:['A-2', 'A-3']

3 单元格数据类型

​ 说明:单元格有以下5种数据类型:empty,string,number,date,,boolean,error

3.1 单元格数据类型读取演示

xlrd读取效果:

 ['', 'hello', 7.0, 44295.0, 0]
  • xlrd将所有数字类型读取为浮点数:7→7.0
  • 布尔类型:FALSE→0,TRUE→1
  • date时间类型读取为长浮点数:2021年4月9日→44295.0

3.2 date类型处理

import xlrd

book = xlrd.open_workbook("Excel表.xlsx")  # 获取工作䈬对象
sh = book.sheet_by_index(1) # 获取第二个工作表对象
date = sh.cell(0, 0).value # 获取单元格A1的值
print("先获取A1单元格的值: {0}".format(date))
print("再通过xldate_as_datetime方法转换: {0}".format(xlrd.xldate_as_datetime(date, 0)))
print("strftime方法截取日期: {0}".format(xlrd.xldate_as_datetime(date, 0).strftime("%Y-%m-%d")))
print("xldate_as_tuple方法获取时间组成的元组: {0}".format(xlrd.xldate_as_tuple(date, 0)))

返回结果:

先获取A1单元格的值: 44295.521099537
再通过xldate_as_datetime方法转换: 2021-04-09 12:30:23
strftime方法截取日期: 2021-04-09
xldate_as_tuple方法获取时间组成的元组: (2021, 4, 9, 12, 30, 23)

python xlrd读Excel表的更多相关文章

  1. python中使用xlrd读excel使用xlwt写excel

    原文地址 :http://www.bugingcode.com/blog/python_xlrd_read_excel_xlwt_write_excel.html 在数据分析和运营的过程中,有非常多的 ...

  2. python 读excel表操作

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

  3. python 之 处理excel表的xlwt模块学习记录

    python 操作excel表的常用模块主要有2个: 1:xlrd:读取excel表 2:xlwt:创建并写入excel表 安装方法: 可以直接下载安装:https://pypi.python.org ...

  4. python实现导出excel表(前端+后端)

    之前在做项目管理系统的时候需要实现将数据导出到excel表的功能,搜索之后发现了python的xlwt模块可以很好的实现这项功能. 首先是导入xlwt模块: import xlwtfrom io im ...

  5. python xlrd读取excel常用方法

    最近学习了python操作excel,记录下常用方法. 需要安装xlrd模块, 打开cmd,输入命令:pip install xlrd  进行安装,若已安装显示如下: xlrd读取excel常用方法如 ...

  6. python xlrd 读取excel.md

    文章链接:https://mp.weixin.qq.com/s/fojkVO-AB2cCu7FtDtPBjw 之前的文章介绍过关于写入excel表格的方法,近期自己在做一个网站,涉及到读取excel, ...

  7. python xlrd对excel的读取功能

    工作簿 xlrd.open_workbook('test.xls') workbook.dump() workbook.nsheets workbook.sheets() workbook.sheet ...

  8. python脚本从excel表到处数据,生成指定格式的文件

    #coding:gbk #导入处理excel的模块 import xlrd #定义哪些字段须要推断,仅仅支持时间字段 toSureColArray = ['CREATE_TIME','MODIFY_T ...

  9. [Python]xlrd 读取excel 日期类型2种方式

    有个excle表格须要做一些过滤然后写入数据库中,可是日期类型的cell取出来是个数字,于是查询了下解决的办法. 主要的代码结构 data = xlrd.open_workbook(EXCEL_PAT ...

随机推荐

  1. C语言中的除法的计算

    不用除号,计算除法运算.思路是使用减法运算!思路1:循环采用减法每次减去n,直到做完减法之后结果小于0为止 但是这样次数较大  如求100/3,需要次数为34次. 思路2:循环采用减法每次减去k,K的 ...

  2. 大数据学习day31------spark11-------1. Redis的安装和启动,2 redis客户端 3.Redis的数据类型 4. kafka(安装和常用命令)5.kafka java客户端

    1. Redis Redis是目前一个非常优秀的key-value存储系统(内存的NoSQL数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list ...

  3. 使用微信开放标签<wx-open-launch-weapp>的踩坑日记

    最近在完成H5跳转小程序需求时,使用到了微信官方退出的开放标签<wx-open-launch-weapp>,来谈一谈使用的心得和不足. 1.适用环境微信版本要求为:7.0.12及以上. 系 ...

  4. 【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍

    其他链接 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍 ...

  5. HongYun项目启动

    一个前后端分离项目的启动顺序: 数据库启动, stams 后台springboot启动 中间路由启动,比如nginx,如果有的话:有这一层,后台可以设置负载均衡,可以动态部署 前端启动

  6. matplotlib 坐标轴刻度能见度问题

    matplotlib 画图时如果图像太大就会挡住了坐标轴,刻度就看不到了.可以利用zorder设置level,level越小越先绘制. 例子: 1 import matplotlib.pyplot a ...

  7. C# 扫描识别图片中的文字(.NET Framework)

    环境配置 本文以C#及VB.NET代码为例,介绍如何扫描并读取图片中的文字. 本次程序环境如下: Visual Studio版本要求不低于2017 图片扫描工具:Spire.OCR for .NET ...

  8. <转>libevent基本使用demo

    这篇文章介绍下libevent在socket异步编程中的应用.在一些对性能要求较高的网络应用程序中,为了防止程序阻塞在socket I/O操作上造成程序性能的下降,需要使用异步编程,即程序准备好读写的 ...

  9. OpenGL ES2 缩放移动

    OpenGL ES Transformations with Gestures Ricardo Rendon Cepeda on December 10, 2013 Tweet Gestures: I ...

  10. malloc实现

    任何一个用过或学过C的人对malloc都不会陌生.大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放 掉.但是,许多程序员对malloc背后的事情并不熟悉,许多人甚 ...