3

我被要求将我的网络应用程序中的平均数据量(基本上是来自 SQL 的列表)添加到可下载的 Excel 文件中,所以我做了一个 servlet 来生成 Excel。

问题是jxl API似乎不喜欢超过256行,而我的数据超过一千。

有没有办法绕过这个限制?如果可以的话,我想继续使用这个 API(不需要在服务器中安装不同的 API,它很容易使用)。但如果必须,我会改变。

谢谢大家!

PS:这里是servlet的主要代码:

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()));

等等。这不是您面临的行数限制,而是列数限制。查看这些 javadocs

于 2010-08-03T07:28:34.517 回答
1

我认为直到最新版本的 Excel 才支持超过 256 列。我假设您的图书馆没有赶上最新版本。

如果您只需要基本的 XLS 生成功能,您实际上可以将 HTML 表格保存为具有关联 mime 类型的 .XLS,Excel 会透明地打开它。我怀疑你可以用这种方法做任何事情,比如公式或图表或任何其他聪明的事情。

于 2010-08-03T07:28:20.303 回答