代码如下
# -*- coding:utf-8 -*- import xlrd from datetime import datetime from xlrd import xldate_as_tuple class XlrdOp: def __init__(self, fileName=None): if fileName is None: return self.readbook = xlrd.open_workbook(fileName) #打开Excel文件,实例化为readbook def get_sheet_names(self): return self.readbook.sheet_names() def get_dict(self): data = {} for i in self.get_sheet_names(): table = self.readbook.sheet_by_name(i) row_num = table.nrows col_num = table.ncols s = [] key = table.row_values(0) # 这是第一行数据,作为字典的key值 if row_num <= 1: print("没数据") continue j = 1 for z in range(row_num-1): d = {} for x in range(col_num): # 把key值对应的value赋值给key,每行循环 ctype = table.cell(j, x).ctype cell = table.cell_value(j, x) if ctype == 2 and cell % 1 == 0.0: # ctype为2且为浮点 cell = int(cell) # 浮点转成整型 cell = str(cell) # 转成整型后再转成字符串,如果想要整型就去掉该行 elif ctype == 3: # 日期类型转换,否则会显示为int date = datetime(*xldate_as_tuple(cell, 0)) cell = date.strftime('%Y/%m/%d') elif ctype == 4: cell = True if cell == 1 else False d[key[x]] = cell j += 1 # 把字典加到列表中 s.append(d) data[i] = s return data if __name__ == "__main__": xp = XlrdOp('/Users/qinshixu/cmdb/static/files/NetDevice_3.xlsx') print(xp.get_sheet_names()) print(xp.get_dict())NetDevice_3.xlsx 文件内容
执行结果
查看更多关于python 读取excel 数据,并转为dict的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did167139