def filter_data( self, sheet: Sheet, datetime_handler: Dict[int, str] = None) -> List[Dict[str, object]]: ''' 依据过滤传入的sheet中数据,并返回数据 1、解决整型数据读取后变成小数 2、解决日期时间读取后变成小数,默认格式:'%Y-%m-%d %H:%M:%S' 3、依据datetime_handler 可以特殊格式化指定列的日期时间格式,没有输入则默认 4、布尔类型的数据,读取转换为 ture和false :param sheet: 传入Sheet对象 :param datetime_handler:列序号为key(从0开始),日期格式fmt为value的字典 (如:{0:'%Y-%m-%d %H:%M:%S',2:'%Y-%m-%d'},表示第一列使用xx格式,第三列使用xx格式) :return: 当前excel-sheet页中数据list=[row1{param1:value1,param2:value2...}, row2{param1:value1,param2:value2...},....] 以下为ctype类型: XL_CELL_EMPTY: 'empty',0 XL_CELL_TEXT: 'text',1 XL_CELL_NUMBER: 'number',2 XL_CELL_DATE: 'xldate',3 XL_CELL_BOOLEAN: 'bool',4 XL_CELL_ERROR: 'error',5 XL_CELL_BLANK: 'blank,6 ''' row_all = sheet.nrows all_data = [] # top_data = sheet.row_values(0) top_data = self.filter_row_data(sheet.row_slice(1), datetime_handler) for x in range(2, row_all): row_cell_list = sheet.row_slice(x) all_data.append( dict( zip(top_data, self.filter_row_data(row_cell_list, datetime_handler)))) return all_data