- xls
- xlsx
- xlsm
- String
- Integer
- int
- Double
- double
- Long
- long
- Boolean
- boolean
- LocalDate
contactless_modes = Contactless Magstripe (MS Mode)
public class CriteriaModel {
private String name;
private String value;
public CriteriaModel(String name, String value) {
this.name = name;
this.value = value;
}
}
CalcFileConverter.addDataTypeConversion(CriteriaModel.class, data -> {
String[] dataSplit = data.split(" = ", 2);
if(dataSplit.length < 2) {
return new CriteriaModel(null, data);
}else{
String criteriaName = dataSplit[0];
String criteriaValue = dataSplit[1];
return new CriteriaModel(criteriaName, criteriaValue);
}
});
@ExcelColumn("Nombre de la columna en la tabla del Excel")
En el directorio base se encuentran dos archivos utilizados para las pruebas al igual que sus dos correspondientes clases de Java.
public class TestUserModel {
@ExcelColumn("ID")
private int id;
@ExcelColumn("Name")
private String name;
@ExcelColumn("Email")
private String email;
}
// La variable file es el MultipartFile recibido en el controlador
Workbook workbook = CalcFileConverter.getWorkbook(file);
Sheet sheet;
// Sheet es cada hoja del archivo
// Se puede obtener una Sheet en base a su nombre o
// en base a su indice dentro del archivo (empieza en 0)
if(sheetName != null && !sheetName.equalsIgnoreCase("")){
sheet = CalcFileConverter.getSheetByName(workbook, sheetName);
}else{
sheet = CalcFileConverter.getSheetByIndex(workbook, sheetIndex);
}
if(sheet == null) throw new SheetNotFoundException();
// Para obtener una tabla solo hace falta obtener su esquina
// superior-izquierda, la cual conforma el encabezado de la misma
// y saber el largo y alta de la tabla, pero para eso hay una función
// que permite conocer estos datos corroborando donde se encuentra el primer
// espacio en blanco (fin de la tabla)
int endRow = CalcFileConverter.getLastRow(sheet, startRow, startColumn);
int endColumn = CalcFileConverter.getLastColumn(sheet, startRow, startColumn);
// Este ultimo metodo extrae la lista de objetos genericos convertidos del archivo
List<TestUserModel> users = CalcFileConverter.extractObjectsFromTable(
sheet,
startRow,
endRow,
startColumn,
endColumn,
TestUserModel.class
);