目录

3.10 xlrd

1. 支持xlsx格式文件版本

pip install xlrd==1.2.0

2. 安装

https://www.cnblogs.com/tinglele527/p/11548595.html

用xlrd进行读取比较方便,流程和平常手动操作Excel一样,打开工作簿(Workbook),选择工作表(sheets),然后操作单元格(cell)。

3. 函数

3.1 打开工作簿

open_workbook()

#文件名以及路径,如果路径或者文件名有中文给前面加一个r

import xlrd
 
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx') # 打开工作簿

3.2 打开工作表

sheet_by_index(0)

sheets()[0]

sheet_by_name('Sheet1')

三个函数都会返回一个xlrd.sheet.Sheet()对象

sheet_names()

返回book中所有工作表的名字

sheet_loaded(sheet_name or indx)

检查某个sheet是否导入完毕

import xlrd
 
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx') # 打开工作簿
 
worksheet = workbook.sheet_by_name('Sheet1') # 三种方式获取工作表

3.3 读取单元格

3.3.1 单个单元格

cell(0, 0).value

cell_value(0, 0)

单元格的索引是二维的,第一个参数是所在行,第二个参数是所在列。需要注意的是,所有的索引都是从 0 开始计数的。

import xlrd
 
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx') # 打开工作簿
 
worksheet = workbook.sheet_by_name('Sheet1') # 三种方式获取工作表
 
cell_value = worksheet.cell_value(0, 0) # 获取单元格数据的两种方式

3.3.2 多个单元格

一次性获取整行或者整列的数据,

row(0)

row(0) 表示获取第一行所有单元格数据,row(1) 表示获取第二行所有单元格数据。

col(0)

结果都是以列表的形式展示的。

可以通过遍历列表获得每一个 cell 对象,然后通过 value 属性取出每一个 cell 的值。

import xlrd
 
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx') # 打开工作簿
 
worksheet = workbook.sheet_by_name('Sheet1') # 三种方式获取工作表
 
for i in worksheet.row(0):
 
    print(i.value)  # 获取单元格数据
 
for i in worksheet.col(0):
 
    print(i.value)  # 获取单元格数据

3.3.3 整个单元格

worksheet 对象

worksheet 对象有两个属性 nrows 和 ncols,分别表示当前的 Sheet 表的行数和列数。

import xlrd
 
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx') # 打开工作簿
 
worksheet = workbook.sheet_by_name('Sheet1') # 三种方式获取工作表
 
# 根据行获取所有单元格数据
 
for row in range(worksheet.nrows):
 
    for i in worksheet.row(row):
 
        print(i.value)
 
# 根据列获取单元格数据  
 
for col in range(worksheet.ncols):
 
    for i in worksheet.col(col):
 
        print(i.value)