JExcel警告:无法在A257添加单元格,因为它超出了最大列限制

时间:2010-08-03 07:24:41

标签: java servlets xls jxl

我被要求将我的网络应用程序(基本上是SQL中的List)的平均数据量添加到可下载的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;

2 个答案:

答案 0 :(得分:4)

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

应该是

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

等等。它不是您面临的行限制,而是列限制。查看these javadocs

答案 1 :(得分:1)

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

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