1

ブラウザーを使用して、60 列で 200000 行を超えるデータをデータベースからクライアント マシンにエクスポートしたいと考えています。私はサーブレットとPOI 3.8バージョンのjarと以​​下のコードを使用しています。

ServletOutputStream servletOutputStreamObj = response.getOutputStream();
HSSFWorkbook workBook =  new HSSFWorkbook ();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=\"" + strFileName + ".xls\"");
workBook.write(servletOutputStreamObj);

このコードは 65535 行まで正常に動作しています。より多くのレコードを作成する方法。(xls/xlsx の両方の形式で問題ありません)。

誰でも私を助けることができますか?

4

2 に答える 2

2

65,535 行に制限された Excel xlsファイルを作成するHSSFWorkbookオブジェクトを使用しています。

代わりに、1,048,576 行をサポートする Excel xlsxファイルを作成するXSSFWorkbookを使用する必要があります。その場合は、ContentType とファイル拡張子も変更する必要があります。

XSSFWorkbook を使用してメモリ不足になった場合は、 SXSSFWorkbookを試してください。

以下は、Apache POI Web サイトの 3 つのクラスの背景です。

于 2012-09-18T10:03:01.330 に答える
1

おそらく、必要に応じてこの例を見ることができます。このサンプルコードは、最大100000レコードのExcelドキュメントを作成しようとします。

大きなワークブックを生成し、OutOfMemory例外を回避するために使用できる回避策を示します

于 2012-09-18T05:27:26.167 に答える