将excel转为python的字典_python 读取excel 数据,并转为dict

代码如下

# -*- 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 文件内容

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

执行结果

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值