网站首页 > 技术教程 正文
在实际应用中,经常会遇到需要读取或导入Excel文件的情况,那么在Python中如何读取 Excel 表格呢?
本文中介绍如何使用Tablib库来导入Excel文件。
Tablib是一个表格数据集库,可用于导入、导出和操作表格数据集,Tablib支持大部分流行的表格数据(文件)格式:
cli | csv | dbf | df (DataFrame) | html |
jira | json | latex | ods | rst |
tsv | xls | xlsx | yaml |
其中,xls和xlsx就是Excel文件格式。
我们看看Tablib的使用方法。
安装
执行命令
pip install “tablib[all]”
安装Tablib及所有支持格式的依赖项。
如果只需支持xls,xlsx格式,则使用下述命令:
pip install "tablib[xls,xlsx]"
读取Excel文件
Tablib的核心是Dataset对象,我们通过创建Databook或Dataset来实现对数据表的读取。我们使用一个示例Excel文件,该文件只有一个工作表,表格内容如下:
下面的代码对该文件进行读取。
from tablib import Dataset,Databook
#打开Xcel文件,注意xlsx的打开方式为字节方式”rb“; CSV等类型的文件则采用文本方式打开。
filepath = "demo.xlsx"
f = open(filepath,"rb")
multi_sheet = False
#对于多工作表的Excel表格,使用Databook读取工作表
if multi_sheet:
databook = Databook().load(f.read(),headers=False,format="xlsx")
datasets = databook.sheets()
#获得第2个工作表
dataset = datasets[1]
else:#对于只有一个工作表的Excel表格,可直接使用Dataset读取dataset对象
dataset = Dataset().load(f.read(),headers=False,format="xlsx")
f.close()
print(dataset)
在上述代码中,使用open打开Excel文件,调用f.read()作为输入流传递给Dataset对象读取。需要注意的是xlsx文件的打开方式为字节方式"rb"; 而CSV等文本类型的文件则采用文本方式打开。
上述代码的输出结果如下:
简单的表格示例|None|None|None
None |None|None|None
姓名 |年龄 |身高 |体重
张三 |18 |178 |68
李四 |20 |177 |65
王五 |22 |176 |70
上面代码中只是取到了数据,还需要对数据进行一些处理,包括设置表头、删除非标准数据行等。
#接续上面的代码
#设置表头和标题
dataset.title = dataset[0]
dataset.headers = dataset[2]
#前3行不是数据,删除。
del dataset[:3]
print(dataset)
输出结果:
姓名|年龄|身高 |体重
--|--|---|--
张三|18|178|68
李四|20|177|65
王五|22|176|70
Dataset对象设置了表头之后,我们就可以按列名获取数据了。
#打印‘姓名’列
print(dataset["姓名"])
输出结果:
['张三', '李四', '王五']
以上代码在Python3.7运行通过。
猜你喜欢
- 2024-11-18 日立EUB-5500彩超故障维修(仁成医疗)
- 2024-11-18 魔兽世界怀旧服:TBC战士 P1单刷老虎 加尔达成,分享下心得
- 2024-11-18 《天国拯救》控制台MOD使用教程秘籍代码大全
- 2024-11-18 升级 | 硬核的数据库支持与恢复能力,效率源DBF6300凭实力圈粉
- 2024-11-18 DBV命令行工具检测坏块
- 2024-11-18 ArcMap中常见的错误及解决方法
- 2024-11-18 每天学点Arcgis实用操作:如何批量核查gis规划情况?
- 2024-11-18 解决软件弹出对话框界面,内容显示不全问题(以OptiBPM为例)
- 2024-11-18 一起来学习Oracle的备份恢复基础吧-2
- 2024-11-18 一文看懂如何跨版本迁移Oracle数据库
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)