目录
前言
安装
注意
优点
通用知识
函数方法
使用范例
使用心得
前言
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 在读取和处理时可能会比较慢,效率不高。