Как напрямую экспортировать коллекцию DTO в CSV, Excel или PDF? - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть List<MyDto>, который я хочу экспортировать с PrimeFaces. Я пробовал с <p:dataExporter>, но похоже, что он использует только контент UI <p:dataTable>.

Как я могу напрямую экспортировать список DTO в CSV, Excel или PDF?

1 Ответ

1 голос
/ 02 ноября 2011

Вам нужна библиотека, чтобы справиться с этим. Primefaces по своей сути не знает, как отображать ваши данные (он анализирует столбцы, а затем экспортирует на основе этого), поэтому вам нужно дать ему несколько советов. Короткий ответ заключается в том, что вы можете легко создать таблицу либо программно, путем отражения на DTO и привязки ее к странице, либо создав простую таблицу данных и установив для нее стиль «display: none», а затем используя экспортер.

В качестве альтернативы вы можете взглянуть на набор отчетов, такой как JasperReports, который обрабатывает «печать» в вышеуказанных форматах, но, опять же, вам нужно что-то сделать, чтобы интерпретировать его. Если вас не волнует производительность, в JSON-Lib есть очень хороший метод "toXML", который преобразует DTO в xml, который затем можно легко экспортировать в любой из форматов, которые вы выберете.

По сути, вы смотрите на ~ 1 час работы, если это сложный набор DTO, или 10 минут, если это не так - до тех пор, пока пропускная способность не является проблемой, это должно быть абсолютно безболезненно.

...