parseSchools static method
Implementation
static List<School> parseSchools(Excel file) {
List<School> schools = [];
// Basic validation for file structure
if (file.sheets.length < 2) {
throw ExcelParsingException("Le fichier des écoles doit contenir au moins deux feuilles (Europe et Hors-Europe)");
}
//Données Europe et Hors-Europe
for(int eu=0; eu<2; eu++) {
String sheetName = file.sheets.keys.toList()[eu];
var sheet = file.sheets[sheetName];
if (sheet == null || sheet.maxRows < 2) {
// Ajouter une throw indiquant que le ficher n'as pas été parsé correctement
return [];
}
//Afficher la première colonne
//int MAXCOLUMN = sheet.rows[0].length - 1;
String? colData = sheet.rows[0][0]?.value.toString();
int MAXCOLUMN = 1;
while (colData != "" && colData != null){
print(colData);
colData = sheet.rows[0][MAXCOLUMN]?.value.toString();
MAXCOLUMN++;
}
MAXCOLUMN--;
/*for (int col = 0; col < MAXCOLUMN; col++) {
String value = sheet.rows[0][col]?.value.toString() ?? "Problème 1ere colonne" ;
stdout.write("$value; ");
}*/
print("");
// Traiter chaque ligne à partir de la ligne 2 (index 1) qui contient les données
for (int row = 1; row < sheet.maxRows; row++) {
// Vérifiez si la ligne contient des données
if (sheet.rows[row].isEmpty || sheet.rows[row][0] == null) continue;
// Offre de séjour
//String offre = sheet.rows[row][0]?.value.toString() ?? "Problème parsing";
//print("Offre: $offre");
for (int col = 0; col < MAXCOLUMN; col++) { //MAXCOLUMN YEAH
String value = sheet.rows[row][col]?.value.toString() ?? "Problème parsing";
stdout.write("$value; ");
}
//VERSION DU TABLEUR
int version = 2;
if(version==2) {
String name = sheet.rows[row][0]?.value.toString() ?? "PROBLEM NAME";
String country = sheet.rows[row][1]?.value.toString() ??
"PROBLEM COUNTRY";
String contract = sheet.rows[row][2]?.value.toString() ??
"PROBLEM CONTRACT_TYPE";
int slots = int.parse(sheet.rows[row][3]?.value.toString() ?? "-1");
int bSlots = int.parse(sheet.rows[row][4]?.value.toString() ?? "-1");
int mSlots = int.parse(sheet.rows[row][5]?.value.toString() ?? "-1");
List<String> specialization = specializationStringToList(
sheet.rows[row][6]?.value.toString() ?? "PROBLEM SPECIALIZATION");
String graduationLevel = sheet.rows[row][7]?.value.toString() ??
"PROBLEM GRADUATION_LEVEL";
String program = sheet.rows[row][8]?.value.toString() ??
"PROBLEM PROGRAM";
String useLanguage = sheet.rows[row][9]?.value.toString() ??
"PROBLEM USE_LANGUAGE";
String reqLangLevel = sheet.rows[row][10]?.value.toString() ??
"PROBLEM REQ_LANG_LEVEL";
String academicLevel = sheet.rows[row][11]?.value.toString() ??
"PROBLEM ACADEMIC_LEVEL";
School school = School(
name,
country,
contract,
slots,
bSlots,
mSlots,
specialization,
graduationLevel,
program,
useLanguage,
reqLangLevel,
academicLevel
);
schools.add(school);
}
if(version==1) {
String name = sheet.rows[row][0]?.value.toString() ?? "PROBLEM NAME";
String country = sheet.rows[row][1]?.value.toString() ??
"PROBLEM COUNTRY";
String contract = sheet.rows[row][2]?.value.toString() ??
"PROBLEM CONTRACT_TYPE";
int slots = int.parse(sheet.rows[row][3]?.value.toString() ?? "-1");
int bSlots = slots;
int mSlots = slots;
List<String> specialization = specializationStringToList(
sheet.rows[row][5]?.value.toString() ?? "PROBLEM SPECIALIZATION");
String graduationLevel = sheet.rows[row][6]?.value.toString() ??
"PROBLEM GRADUATION_LEVEL";
String program = sheet.rows[row][7]?.value.toString() ??
"PROBLEM PROGRAM";
String useLanguage = sheet.rows[row][8]?.value.toString() ??
"PROBLEM USE_LANGUAGE";
String reqLangLevel = sheet.rows[row][9]?.value.toString() ??
"PROBLEM REQ_LANG_LEVEL";
String academicLevel = sheet.rows[row][10]?.value.toString() ??
"PROBLEM ACADEMIC_LEVEL";
School school = School(
name,
country,
contract,
slots,
bSlots,
mSlots,
specialization,
graduationLevel,
program,
useLanguage,
reqLangLevel,
academicLevel
);
schools.add(school);
}
print("");
}
}
print("LES SCHOOLS: $schools");
print("Normalemennt MONS:");
print(schools[5].name);print(schools[5].country);print(schools[5].content_type);print(schools[5].specialization);
if (schools.isEmpty) {
throw ExcelParsingException("Aucune école n'a été trouvée dans le fichier");
}
return schools;
}