读取excel表格数据需要用到xlrd或者openpyxl模块,所以先安装xlrd/openpyxl:直接pip install xird/openpyxl
xlrd和openpyxl区别:
1.xlrd能处理的最大行数为65535,超过这个行数的文件就需要用到openpyxl,openpyxl最大支持1048576行
2.openpyxl不支持xls格式文件
xlrd模块常用方法介绍:
打开excl文件:s = xlrd.open_workbook(“文件路径”)
获取表格:s.sheets()[0] = s.sheet_by_index(0) 获取第一张表格; 注意:下标值是从0开始
s.sheet():获取所以表单的索引
sheet = s.sheet_by_name("表名") 获取指定表名的表
获取表格的总行数:sheet.nrows
获取表格的总列数:sheet.ncols
获取指定行的数据:sheet.row_values(下标值),sheet.row_values(0,1,3)表示从去第2,3,4行的值
获取指定行的数据:sheet.col_values(下标值)
获取指定单元格数据:sheet.cell(a,b).value a表示行的下标值,b表示列的下标值;两者可以调换位置;注意:不加.value取出的值前面会带个text的东西
1.导入xlrd模块
2.通过open.workbook()方法打开文件
3.通过sheets()[]方法获取想要的表格
4.获取总行数和总列数
5.取第一行的值作为字典的key
6.通过2个循环来根据行取对应列的值
代码如下:
import xlrd
data = []
def read_xsls(xlsx_path):
data_xsls = xlrd.open_workbook(xlsx_path) #打开此地址下的exl文档
sheet_name = data_xsls.sheets()[0] #进入第一张表
print(sheet_name)
sheet_name1 = data_xsls.sheet_by_index(0)
print(sheet_name1)
count_nrows = sheet_name.nrows #获取总行数
# print(count_nrows)
count_nocls = sheet_name.ncols #获得总列数
line_value = sheet_name.row_values(0)
for i in range(1,count_nrows):
data_1 = {}
for j in range(2,count_nocls):
data_1[line_value[j]]=sheet_name.cell(i,j) #根据行数来取对应列的值,并添加到字典中
# print(data_1)
data.append(data_1)
# print(data)
openpyxl用法简介:
1.打开excel: s = openpyxl.load_workbook(文件路径)
2.基本方法
sheet = s.sheetnames #获取所有表格的名字
sheet = s.get_sheet_by_name(表格名) #根据表格名获取该表格的数据
sheet = s[表格名] #根据表格名获取该表格的数据
sheet.max_row() #获取最大行数
sheet.max_column #获取最大列数
sheet['A1'].value #获取A1单元格的值
sheet.cell(a,b) #获取a行,b列的值,a,b其中一个必须为1或以上