К сожалению, OpenFaces Datatable еще не имеет возможности экспорта в отличие от Primefaces или IceFaces.
Несмотря на то, что экспорт является простым делом, фильтрация данных IceFaces или простых лиц - это какой-то фильм ужасов, однако фильтрация PrimeFaces не работает с JSF DataModel (грустно, но верно).
Использование фильтрации OpenTaces DataTable - это очень просто и очень удобно и эффективно.
Но как насчет Конечного пользователя, который хочет экспортировать данные, которые он / она фильтровал, в формат, такой как CSV или MS Excel .
Великий Дмитрий из OpenFaces подсказал мне:
Используйте метод OpenFaces DataTable: getDisplayedRowDatas()
, который будет извлекать отображаемые в данный момент строки из таблицы данных, а затем использовать некоторую библиотеку thrid, например Itext, для экспорта в PDF, например.
В моей голове это должно быть так:
- Создайте для этой цели вспомогательный компонент.
- Добавить Apache POI третью библиотеку в путь к классам
- Написание кода с использованием Apache POI для экспорта содержимого данных OpenFaces с помощью его метода
getDisplayedRowsDatas()
- но я боюсь, что этот метод не возвращает имена заголовков столбцов - или захватывает таблицу HTML, отображаемую в OpenFaces Datatable, как буферизованной строки и используйте Apache POI для создания файла Excel, передаваемого в буфер.
В примере MyFaces, с которым я недавно сталкивался: Пример экспорта данных MyFaces , разработчик использует компонент Myfaces <t:buffer value=#{myExportBean.myBufferString}> datatable here </t:buffer />
для преобразования содержимого таблицы данных в буферизованную строку, что упрощает работу. JSF Core, к сожалению, не имеет такого компонента.
Кто-то сталкивался с этим раньше? Помощь или лучшие альтернативы очень ценятся.