随笔 - 105  文章 - 0  评论 - 0  阅读 - 40744

Excel操作之读取数据----基于xlrd模块

使用流程

Excel数据读取操作是基于工作表对象进行的,所以需要首先获取工作表对象,而工作表对象要通过工作簿对象获取的。

工作簿对象操作

以下操作以以下表为例子:

1
2
3
4
5
6
7
8
9
10
11
# 打开文件并返回一个工作簿对象
workbook_obj = xlrd.open_workbook('c:\player.xlsx')
# 获取工作表名称列表
print(workbook_obj.sheet_names())
# 获取工作表对象的三个函数,sheet_by_index的参数是索引值,sheet_by_name的参数是工作表名,sheet_loaded两者皆可
print(workbook_obj.sheet_by_index(0))
print(workbook_obj.sheet_by_name('Sheet2'))
workbook_obj.sheet_loaded(0)
workbook_obj.sheet_loaded('Sheet2')
# 返回工作簿的所有工作表对象,是一个列表
workbook_obj.sheets()

行操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 获取行数
print(sheet1_obj.nrows)
# 获取第二行的数据,原型:SheetObject.row_values(rowx[,start_colx=0,end_colx=None])
print(sheet1_obj.row_values(1))  # ['Beckham', 7.0, '曼联', '中场']
# 获取第二行单元,返回值为[text:'Beckham', number:7.0, text:'曼联', text:'中场']
print(sheet1_obj.row(1))
# 返回值的类型,empty为0,string为1,number为2,data为3,boolean为4,error为5
print(sheet1_obj.row_types(1))  # array('B', [1, 2, 1, 1])
# 获取长度
print(sheet1_obj.row_len(1))  # 4
# sheet1_obj.get_rows()产生一个生成器
for v in sheet1_obj.get_rows():
    print(v)
# 对行进行切片
print(sheet1_obj.row_slice(1, 0, 1))

列的操作和行的操作差不多,把row改为col即可

单元格操作

1
2
3
4
5
print(sheet1_obj.cell(2, 1))  # number:11.0
# 获取值
print(sheet1_obj.cell_value(1, 1))
# 获取类型
print(sheet1_obj.cell_type(2, 1))
posted on   Treelight  阅读(563)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示