2025年3月16日 星期日 甲辰(龙)年 月十五 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

python3 利用xlrd模块封装实现读取表格数据

时间:12-10来源:作者:点击数:18

python3 利用xlrd模块封装实现读取表格数据

  • #!/usr/bin/env python
  • # coding=utf-8
  • # 封装实现读取表格数据
  • # 优化了xlrd中单元格的数据类型:
  • '''
  • 数字一律按浮点型输出,日期输出成一串小数,布尔型输出0或1,所以我们必须在程序中做判断处理转换
  • 成我们想要的数据类型
  • 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
  • '''
  • import xlrd
  • from xlrd import xldate_as_tuple
  • import datetime
  • class ExcelUtil:
  • # def __init__(self, excel_path, sheet_name):
  • def __init__(self, excel_path):
  • self.data = xlrd.open_workbook(excel_path)
  • # 这个可以根据传入进来的sheet表名字来获取
  • # self.table = self.data.sheet_by_name(sheet_name)
  • # 直接获取第一个sheet表
  • self.table = self.data.sheets()[0]
  • # 获取第一行作为key值
  • self.keys = self.table.row_values(0)
  • # 获取总行数
  • self.rowNum = self.table.nrows
  • # 获取总列数
  • self.colNum = self.table.ncols
  • def dict_data(self):
  • if self.rowNum <= 1:
  • print("总行数小于1")
  • else:
  • r = []
  • j = 1 # 第一行
  • for i in range(self.rowNum - 1): # 减1防止越界,从第一行开始的,不是从0行开始,所以总数减1
  • s = {}
  • # 从第二行取对应values值
  • values = self.table.row_values(j)
  • for x in range(self.colNum): # x列
  • # 获取单元格数据类型
  • c_type = self.table.cell(j, x).ctype
  • # 获取单元格数据
  • c_cell = self.table.cell_value(j,x)
  • if c_type == 2 and c_cell % 1 == 0: # 如果是整形
  • values[x] = int(values[x])
  • elif c_type == 3: # 日期
  • # 转成datetime对象
  • date = datetime.datetime(*xldate_as_tuple(c_cell, 0))
  • values[x] = date.strftime('%Y/%d/%m %H:%M:%S')
  • elif c_type == 4: # 布尔类型
  • values[x] = True if c_cell == 1 else False
  • s[self.keys[x]] = values[x]
  • r.append(s)
  • j += 1
  • return r
  • if __name__ == "__main__":
  • # excel文件路径
  • filePath = "./123.xlsx"
  • # sheet表名字传参
  • # sheetName = "企业在线产品列表"
  • # data = ExcelUtil(filePath, sheetName)
  • data = ExcelUtil(filePath)
  • # 打印最后信息
  • print(data.dict_data())

结果类似为:

[{'name': '欧罗', 'id1': 421.0, 'id2': 2437.0}, {'name': '欧罗', 'id1': 422.0, 'id2': 2443.0}]

xlrd详细介绍参照:https://www.cdsy.xyz/computer/programme/Python/241207/cd64837.html

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐