安装xlrd
python中安装xlrd by Milan_KunderLa
xlrd使用教程
python的xlrd模块使用说明_【Python】xlrd模块使用 by weixin_39934302
Python 中 xlrd 模块 的使用方法 by Yuº
读取Excel文件’testfile.xls’例程
# 读取Excel所需要包含的头文件,此头文件只能读取xls文件,如果为xlsx可以先将文件另存为为xls文件
import xlrd
# 按照sheet的顺序读取整个Excel文件
# 输入参数为Excel文件绝对路径字符串
# 输出参数为一个字典:键为Excel表中sheet的名称;值为一个包含两个元素列表,第一个元素为包含sheet第一列数据的列表,第二个元素为包含sheet第二列数据的列表;字典元素个数等于Excel表的sheet数目
def readDataFromExcel(filename):
list4 = {} # 用于存储读取结果的字典
data = xlrd.open_workbook(filename) # 打开Excel文件并初始化Excel文件句柄
nsheet = len(data.sheets()) # 读取Excel文件sheet数目
# 遍历Excel中的每一个sheet
for i in range(nsheet):
# 中间变量的列表
list1 = []
list2 = []
list3 = []
table = data.sheet_by_index(i) # 读取第i个sheet并返回该sheet对象
nrows = table.nrows # 读取第i个sheet的行数
# 遍历sheet中第0列的所有元素
for j in range(nrows):
list1.append(table.cell(j, 0).value) # 将第0列的第j个元素加入到list1列表中
# 遍历sheet中第1列的所有元素
for j in range(nrows):
list2.append(table.cell(j, 1).value) # 将第1列的第j个元素加入到list2列表中
# 将list1和list2作为列表元素添加到list3中
list3.append(list1)
list3.append(list2)
# 将 sheet名:第零一列数据列表 的键值对添加到 字典list4中
list4.update({data.sheet_names()[i] : list3})
data.release_resources() # 关闭Excel文件
return list4 # 返回所需字典
# 读取Excel中某一个sheet的数据
# 第一个输入参数为Excel文件绝对路径字符串,第二个输入参数为sheet表的索引(从0开始)
# 输出参数为一个字典:键为Excel表中sheet的名称;值为一个包含两个元素列表,第一个元素为包含sheet第一列数据的列表,第二个元素为包含sheet第二列数据的列表;字典元素个数等于1,使用字典目的是使两个函数的输出都可以作为printData的输入
def readDataFromSheet(filename, sheetnum):
# 定义中间变量
list1 = []
list2 = []
list3 = []
list4 = {}
data = xlrd.open_workbook(filename) # 打开Excel文件并初始化Excel文件句柄
table = data.sheet_by_index(sheetnum) # 读取第sheetnum个sheet并返回该sheet对象
nrows = table.nrows # 读取第sheetnum个sheet的行数
# 遍历sheet中第0列的所有元素
for j in range(nrows):
list1.append(table.cell(j, 0).value) # 将第0列的第j个元素加入到list1列表中
# 遍历sheet中第1列的所有元素
for j in range(nrows):
list2.append(table.cell(j, 1).value) # 将第1列的第j个元素加入到list2列表中
# 将list1和list2作为列表元素添加到list3中
list3.append(list1)
list3.append(list2)
# 将 sheet名:第零一列数据列表 的键值对添加到 字典list4中
list4.update({data.sheet_names()[sheetnum] : list3})
data.release_resources() # 关闭Excel文件
return list4
# 传入一个读取结果字典,展示其sheet名称,第一列数据,第二列数据
def printData(dict):
listkey = list(dict.keys()) # 取出字典键数据并强制转换为列表格式
listvalue = list(dict.values()) # 取出字典值数据并强制转换为列表格式
# 按序号遍历键列表和值列表,打印键值信息
for i in range(len(listkey)):
print(listkey[i])
print(dict[listkey[i]][0])
print(listvalue[i][1])
# 读取Excel文件的第0个sheet,并输出读取结果
sheetdata = readDataFromSheet('testfile.xls',0)
printData(sheetdata)
print('\n')
# 读取整个Excel文件,并输出读取结果
exceldata = readDataFromExcel('testfile.xls')
printData(exceldata)
# 等待输入防止程序直接关闭
input()
输出结果