大家好,欢迎来到IT知识分享网。
前言
xlrd库特别适合需要处理Excel文件中数据的任务.
同时,需要注意的是,xlrd 主要用于读取Excel文件。如果需要写入Excel文件,可以结合其他库如 openpyxl或者xlsxwriter.
目录
安装
xlrd1.2.0版本 适配Python >=2.7 (不包括3.0-3.3)或 Python >=3.4
xlrd2.0.1版本 适配Python >=2.7(不包括3.0-3.5) 或 Python >=3.6
# 安装指定版本1.2.0 # pip install xlrd==1.2.0 pip install xlrd
注意
技术实现上的差异以及维护资源的问题
xlrd1.2.0之后的版本(2020年之后)不支持xlsx文件.
xlsx文件采用了Open XML标准,需要解析ZIP压缩包内的多个XML文件来获取数据,这相比 解析.xls文件更为复杂。
旧版Excel文件(.xls)所使用的二进制BIFF存储格式完全不同。
优点
xlrd 在处理小到中等大小的Excel文件时具有较好的性能表现,能够快速读取数据并进行处理。
通用知识
Excel由工作簿、工作表、单元格和公式构成。
清楚了Excel的文件构成,那么就知道xlrd库是围绕哪些对象进行操作.
- 工作簿(Workbook):一个Excel文件即为一个工作簿,可以包含多个工作表,通常以.xlsx为扩展名。
- 工作表(Worksheet):工作簿内的一个表格页面,用于存储数据和进行操作。
- 单元格(Cell):工作表由多个单元格组成,每个单元格有自己的地址,例如A1、B2等。
- 公式(Formula):用于对单元格中的数据进行计算和处理的表达式,以实现自动化计算功能。
函数方法
- open_workbook(filename):打开指定的Excel文件。
- sheet_names():返回所有工作表的名称列表。
- sheet_by_index(index):根据索引获取指定的工作表。
- sheet_by_name(name):根据名称获取指定的工作表。
- nrows:获取工作表的行数。
- ncols:获取工作表的列数。
- row_values(rowx, start_colx=0, end_colx=None):获取指定行的值列表。
- col_values(colx, start_rowx=0, end_rowx=None):获取指定列的值列表。
- cell_value(rowx, colx):获取指定单元格的值。
- cell_type(rowx, colx):获取指定单元格的数据类型。
- merge_range(first_row, last_row, first_col, last_col, string):合并指定范围内的单元格并设置内容。
使用范例
import xlrd # 打开指定的Excel文件 workbook = xlrd.open_workbook(r'D:\dist\test.xls') # 获取工作簿中的所有工作表名称 sheet_names = workbook.sheet_names() print("工作表名称列表:", sheet_names) # 工作表名称列表: ['test01', 'test02', 'test03'] # 选择第一个工作表 sheet = workbook.sheet_by_index(0) # 获取工作表的行数和列数 num_rows = sheet.nrows num_cols = sheet.ncols print("行数:", num_rows) print("列数:", num_cols) # 行数: 13 # 列数: 2 # 逐行读取数据并打印 for row_index in range(num_rows): row_values = sheet.row_values(row_index) print("第", row_index + 1, "行数据:", row_values) # 逐列读取数据并打印 for col_index in range(num_cols): col_values = sheet.col_values(col_index) print("第", col_index + 1, "列数据:", col_values)
使用心得
最大的优点:
易于上手:xlrd 的使用相对简单,文档详细,容易理解和操作。
缺点:
只支持读取 需要其他库来实现数据写入EXCEL文件
性能较低:对于大型 Excel 文件,xlrd 在读取和处理时可能会比较慢,效率不高。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/112030.html


