Free Support Forum - aspose.com

Aspose.Cells for Java Cells.getでOutOfMemoryErrorになる

以下のコードを使ってセルからテキストを抽出しています。

Workbook workbook  = new Workbook(inputStream);
for (Object sheetObj : workbook.getWorksheets()) {
    Worksheet sheet = (Worksheet) sheetObj;

    // セルのテキストを取得
    Cells cells = sheet.getCells();
    Range maxDisplayRange = cells.getMaxDisplayRange();

    for (int i = 0; i < maxDisplayRange.getRowCount(); i++) {

        for (int j = 0; j < maxDisplayRange.getColumnCount(); j++) {
            Cell cell = cells.get(i, j); // OutOfMemoryError
            System.out.println(cell.getDisplayStringValue());
        }
    }

}

しかし、下記のサンプルデータを使用した場合、OutOfMemoryErrorが発生してしまいした。
何かこの問題を回避する方法はございますでしょうか。

使用バージョン:Aspose.Cells for Java 18.5
サンプルデータ:http://sonson-antioquia.gov.co/Transparencia/PlaneacionGestionyControl/Plan%20de%20Acción%20de%20la%20Secretaría%20de%20Salud.xlsx

お手数おかけしますが、ご確認の程よろしくお願いいたします。

@yudai_yamaguchi,

テンプレートファイルとサンプルコードをありがとう。

別のメモリがある場合は、メモリ設定を使用できます。 参考までに、次のサンプルコードを参照してください。
例えば
サンプルコード:

LoadOptions loadOptions = new LoadOptions(); 
		loadOptions.setMemorySetting(MemorySetting.MEMORY_PREFERENCE);
Workbook workbook  = new Workbook(inputStream, loadOptions);

LightCells APIを使用することもできます。 参考資料を参照してください。
https://docs.aspose.com/display/cellsjava/Using+LightCells+API

お勧めのオプションを使用した後も引き続き問題が見つかった場合は、お知らせください。

問題を解決することができました。
ご対応いただきありがとうございました。

@yudai_yamaguchi,

提案された方法を使用して問題を解決できることを知ることは良い考えです。 ご意見やご質問がありましたら、お気軽にご返信ください。 すぐにお手伝いさせていただきます。