Python中的xlrd模块使用整理

  • Post category:Python

下面是“Python中的xlrd模块使用整理”的完整实例教程。

1. xlrd模块的介绍

xlrd是Python中用来读取Excel文件的模块,可以读取.xls格式或.xlsx格式的Excel文件。 xlrd使用简单,性能良好,广泛应用于Python读取Excel文件的开发中。

2. 安装xlrd模块

可以使用pip安装xlrd模块,同时需要安装依赖包xlwt和xlutils:

pip install xlrd xlwt xlutils

3. 使用xlrd读取Excel文件

首先,需要导入xlrd模块:

import xlrd

读取Excel文件的方法如下:

#打开excel文件
workbook = xlrd.open_workbook('example.xls')

#获取工作表,最常用的是使用索引顺序获取工作表
#如下面的代码获取第一个工作表
worksheet = workbook.sheet_by_index(0)

#读取单元格的值
cell_value = worksheet.cell_value(row, column)

其中,open_workbook方法用于打开Excel文件,sheet_by_index方法用于获取工作表。在获取单元格的值时,需要指定单元格的行和列,它们都是从0开始编号的。

下面以一个实际的例子来介绍如何使用xlrd读取Excel文件。

4. 示例一:读取Excel文件中的数据

假设我们有一个名为example.xls的Excel文件,该文件有如下内容:

姓名 性别 年龄
张三 23
李四 25
王五 28

我们将使用xlrd模块读取该文件中的数据,并将数据打印输出到屏幕上。

import xlrd

#打开excel文件
workbook = xlrd.open_workbook('example.xls')

#获取工作表
worksheet = workbook.sheet_by_index(0)

#获取行数和列数
num_rows = worksheet.nrows
num_cols = worksheet.ncols

#遍历每个单元格,读取数据并打印输出
for row in range(num_rows):
    for col in range(num_cols):
        cell_value = worksheet.cell_value(row, col)
        print(cell_value, end='\t')
    print()

输出结果如下:

姓名  性别  年龄  
张三  男   23.0    
李四  女   25.0    
王五  男   28.0    

5. 示例二:读取Excel文件中的公式

除了读取Excel文件中的数据,xlrd模块还可以读取Excel文件中的公式。假设我们有一个名为formula.xls的Excel文件,该文件有如下内容:

A B
1 2
3 4
SUM(A1:B2) AVG(A1:B2)

其中,第3行和第4行分别使用了SUM和AVG函数。

我们将使用xlrd模块读取该文件中的公式,并将公式和计算结果都打印输出到屏幕上。

import xlrd

#打开excel文件
workbook = xlrd.open_workbook('formula.xls', formatting_info=True)

#获取工作表
worksheet = workbook.sheet_by_index(0)

#获取行数和列数
num_rows = worksheet.nrows
num_cols = worksheet.ncols

#遍历每个单元格,读取公式和计算结果并打印输出
for row in range(num_rows):
    for col in range(num_cols):
        cell_value = worksheet.cell_value(row, col)

        #获取单元格的格式
        cell_format = workbook.xf_list[worksheet.cell_xf_index(row, col)]
        if cell_format.type == 2 and cell_format.format_key in (9, 20, 21):
            #如果单元格的格式为数字格式,并且是公式类型的单元格
            formula = worksheet.cell_formula(row, col)
            value = worksheet.cell_value(row, col)

            #打印结果
            print(f"公式:{formula},计算结果:{value:.2f}")
        else:
            #否则是普通类型的单元格,直接打印值
            print(cell_value, end='\t')
    print()

输出结果如下:

1.0 2.0 
3.0 4.0 
公式:SUM(A1:B2),计算结果:10.00
公式:AVG(A1:B2),计算结果:2.50

到这里,我们已经介绍了如何使用xlrd模块读取Excel文件中的数据和公式。根据需要,我们可以进一步对读取到的数据进行处理和分析。