300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Python读取xlsx表格并转换成Python列表

Python读取xlsx表格并转换成Python列表

时间:2022-08-18 05:46:41

相关推荐

Python读取xlsx表格并转换成Python列表

Python读取xlsx表格并转换成Python列表

参考链接/ilovepython/p/11068841.html

import xlrdfrom xlrd import xldate_as_tupleimport datetime'''xlrd中单元格的数据类型数字一律按浮点型输出,日期输出成一串小数,布尔型输出0或1,所以我们必须在程序中做判断处理转换成我们想要的数据类型0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error'''class ExcelData():# 初始化方法def __init__(self, data_path, sheetname):#定义一个属性接收文件路径self.data_path = data_path# 定义一个属性接收工作表名称self.sheetname = sheetname# 使用xlrd模块打开excel表读取数据self.data = xlrd.open_workbook(self.data_path)# 根据工作表的名称获取工作表中的内容(方式①)self.table = self.data.sheet_by_name(self.sheetname)# 根据工作表的索引获取工作表的内容(方式②)# self.table = self.data.sheet_by_name(0)# 获取第一行所有内容,如果括号中1就是第二行,这点跟列表索引类似self.keys = self.table.row_values(0)# 获取工作表的有效行数self.rowNum = self.table.nrows# 获取工作表的有效列数self.colNum = self.table.ncolsprint(self.keys)def convert_cell(self, c_type, cell):if c_type == 2 and cell % 1 == 0:return int(cell)if c_type == 3:return datetime.datetime(*xldate_as_tuple(cell, 0)).strftime('%Y/%d/%m %H:%M:%S')if c_type == 4:return True if cell == 1 else Falsereturn cell# 定义一个读取excel表的方法def readExcel(self):# 定义一个空列表datas = []for i in range(1, self.rowNum):# 定义一个空字典sheet_data = {}for j in range(self.colNum):# 获取单元格数据类型# self.table.cell(i,j).ctype# 获取单元格数据# self.table.cell_value(i, j)c_cell_convert = self.convert_cell(self.table.cell(i,j).ctype,self.table.cell_value(i, j))sheet_data[self.keys[j]] = c_cell_convert# 循环每一个有效的单元格,将字段与值对应存储到字典中# 字典的key就是excel表中每列第一行的字段# sheet_data[self.keys[j]] = self.table.row_values(i)[j]# 再将字典追加到列表中datas.append(sheet_data)print(sheet_data)# 返回从excel中获取到的数据:以列表存字典的形式返回return datasif __name__ == "__main__":data_path = "x1.xlsx"sheetname = "Sheet1"get_data = ExcelData(data_path, sheetname)datas = get_data.readExcel()print(datas)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。