Предупреждение JExcel: Не удалось добавить ячейку на A257, поскольку она превышает максимальный предел столбца ' - PullRequest
4 голосов
/ 03 августа 2010

Меня попросили добавить средний объем данных из моего веб-приложения (в основном это список из SQL) в загружаемый файл Excel, поэтому я создал сервлет для генерации Excel.

Проблема в том, что jxl API, похоже, не нравится больше 256 строк, а мои данные - более тысячи.

Есть ли способ обойти это ограничение? Я хотел бы продолжать использовать этот 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;

Ответы [ 2 ]

4 голосов
/ 03 августа 2010
s.addCell(new Label(i,0,sql.get(i).getCod_project()));

должно быть

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

и так далее.Это не предел строки, с которой вы сталкиваетесь, а предел столбца.Проверьте эти Javadocs .

1 голос
/ 03 августа 2010

Я думаю, что до последних версий Excel он не поддерживает более 256 столбцов.Я предполагаю, что ваша библиотека не догнала последний выпуск.

Если вам нужны только базовые функции генерации XLS, вы можете фактически сохранить таблицу HTML в формате .XLS со связанным типом mime, и Excelоткройте его прозрачно.Я сомневаюсь, что вы можете сделать что-то вроде формул или диаграмм или что-нибудь еще умнее с таким подходом.

...