Apache POIを使用して、Excelファイルの最初のシートにのみデータを読み込みます。送信されるxlsxファイルは通常1枚しかなく、2.5MB(データが130KBを少し上回る)であり、すべてが遅くて滑らかになり、エラーは発生しません。しかし、提出されたxlsxに複数のシートがあり、他のシートにも多くのデータがある場合、実行はOutOfMemoryError:Javaヒープ・スペース・エラーをスローします。今私は何らかの理由で、メモリエラーについて心配することなく、最初のシートのデータだけを常に読み込むことができるかどうかを判断しようとしています。(-Xmx1024m -Xms512m引数でこれを実行しています)Apache POIの最初のシートを強制的に読み取る
InputStream inputStream = new FileInputStream(new File(excelfile));
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
if (workbook.getNumberOfSheets() != 1) {
throw new Exception("Make sure excel only has 1 sheet");
}
(Excelファイルは、同様に第二のシート上のデータをたくさん持っている場合)プログラムは、私は、
と私はメモリの制限を変更しなければならない場合は理想的でしょう。 – JapanGuy