3

Web アプリ (基本的には SQL からのリスト) から平均量のデータをダウンロード可能な Excel ファイルに追加するように求められたので、サーブレットを使用して Excel を生成しました。

問題は、jxl API が 256 行以上を好まないようで、データが 1,000 以上あることです。

この制限を回避する方法はありますか? できればこの API を使い続けたいと思います (サーバーに別の API をインストールする必要がなく、使いやすいです)。しかし、必要に応じて変更します。

全てに感謝!

PS: サーブレットのメイン コードは次のとおりです。

List<TableProject> sql = (List<TableProject>)session.getAttribute("sql");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=Export.xls");
w = Workbook.createWorkbook(response.getOutputStream());
s = w.createSheet("Consult Project", 0);
for(int i=0;i<sql.size();i++){

 s.addCell(new Label(i,0,sql.get(i).getCod_project()));
 s.addCell(new Label(i,1,sql.get(i).getTxt_project()));
 s.addCell(new Label(i,2,sql.get(i).getDate_notification()));
 s.addCell(new Label(i,3,sql.get(i).getDate_last_action()));
 s.addCell(new Label(i,4,sql.get(i).getTxt_personal()));
 s.addCell(new Label(i,5,sql.get(i).getTxt_estate()));
 s.addCell(new Label(i,6,sql.get(i).getTxt_provider()));

}
w.close();
w = null;
4

2 に答える 2

4
s.addCell(new Label(i,0,sql.get(i).getCod_project()));

する必要があります

s.addCell(new Label(0, i,sql.get(i).getCod_project()));

等々。直面している行の制限ではなく、列の制限です。これらの javadocを確認してください。

于 2010-08-03T07:28:34.517 に答える
1

最近のバージョンの Excel までは、256 を超える列をサポートしていないと思います。ライブラリが最新のリリースに追いついていないと思います。

基本的な XLS 生成機能のみが必要な場合は、HTML テーブルを関連する MIME タイプの .XLS として実際に保存すると、Excel がそれを透過的に開きます。ただし、そのアプローチで数式やチャート、またはその他の巧妙なことを行うことができるとは思えません。

于 2010-08-03T07:28:20.303 に答える