数字一律按浮点型输出,日期输出成一串小数,布尔型输出0或1,所以我们必须在程序中做判断处理转换
成我们想要的数据类型
ctype的取值:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
#!/usr/bin/env python
# coding=utf-8
# 封装实现读取表格数据
# 2018.11.10增加了如果不传sheet_name默认读取第一个表格的功能
# 2022.1.10 write_excel增加了设置日期格式的单元格,写入日期格式一般是写入公式:=Date(2022,01,02)
# 2022.2.7 dict_data 优化了获取数据的代码
import xlrd,os
from xlrd import xldate_as_tuple
from datetime import datetime
from openpyxl import load_workbook
import re
class ExcelUtil:
def __init__(self, excel_path, sheet_name=None):
self.excel_path = excel_path
self.wb = load_workbook(excel_path,data_only=True)
self.data = xlrd.open_workbook(excel_path)
# 如果sheet_name传入值了并且名字在表格的sheet表名里就用这个名的表,如果没有就默认选择第一个表格
if sheet_name != None and sheet_name in self.wb.sheetnames:
self.table = self.data.sheet_by_name(sheet_name)
self.ws = self.wb[sheet_name]
else:
self.table = s