convertExcelToMap method
Implementation
Future<Map<String, List<Map<String, dynamic>>>> convertExcelToMap(context) async {
try {
// Leer el archivo Excel
Uint8List? bytes = await fileServiceAndroid.readFile(context, 'XLSX');
if (bytes == null) throw Exception("El mapa de bytes del archivo es nulo.");
var excel = Excel.decodeBytes(bytes);
Map<String, List<Map<String, dynamic>>> excelData = {};
for (var sheet in excel.sheets.keys) {
var sheetData = excel.sheets[sheet]!;
if (sheetData.rows.isEmpty) continue;
List<String> headers = sheetData.rows.first
.map((cell) => cell?.value.toString() ?? "")
.toList();
List<Map<String, dynamic>> sheetList = [];
for (var row in sheetData.rows.skip(1)) {
Map<String, dynamic> rowData = {};
for (int i = 0; i < headers.length; i++) {
rowData[headers[i]] = row[i]?.value?.toString();
}
sheetList.add(rowData);
}
excelData[sheet] = sheetList;
}
return excelData;
} catch (error) {
showSnackBar(context, SnackType.error, error.toString());
return {};
}
}