Mam problem z otworzeniem dużych plików Excela. Jeśli plik waży ponad 5 mega to dane wczytują się bardzo długo albo program się wiesza. Mógłby ktoś poratować jakąś funkcją do szybkiego wczytywania danych z Excela (około 150 kolumn i 100k wierszy).
W tej chwili mam coś takiego:
public ArrayList< ArrayList<String>> readDataFromExcel(String filePath, String sheetName, Integer IloscK) throws Exception {
int rows_total;
String dataSheet = "";
ArrayList< ArrayList<String>> lista = new ArrayList<>();
Row row = null;
XSSFCell cell = null;
FileInputStream inputStream = new FileInputStream(filePath);
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
XSSFSheet sheet = workbook.getSheet(sheetName);
rows_total = sheet.getLastRowNum();
ArrayList<String> sl = new ArrayList<>();
sl.add("wiersz 0");
lista.add(sl);
for (int i = 0; i <= rows_total; i++) {
ArrayList<String> singleList = new ArrayList<>();
row = sheet.getRow(i);
for (int j = 0; j < IloscK; j++) {
cell = (XSSFCell) row.getCell(j);
cell.setCellType(Cell.CELL_TYPE_STRING);
if (cell == null) {
dataSheet = "null";
} else {
dataSheet = (cell.getStringCellValue());
}
singleList.add(dataSheet);
}
lista.add(singleList);
}
return lista;
}