Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: И опять Apache POI. Потоковое создание excel со слиянием ячеек и подытогами.  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7512
Не очень понятно, в чем же смысл вопроса и в чем проблема

1) Первым делом я бы сделал простейший Test case и попытался бы оценить "прожорливость" POI XSSF и HSSF.

Тогда можно было бы "начальству", прямо сказать: а что Вы хотите, документ офигенно большой, нужно N Gb памяти, а у пользователей только M.

note: как я понимаю, XSSF для хранения в памяти использует XML DOM, т.ч. прожорливость объяснима
для HSSF в I-net'е есть рекомендации по reusing'у java объектов, что должно экономить память

2) Формировать документ в один проход через стриминг Но тут мы не видем кода программы. Зачем при формирование документа нужно "пройтись заново" совершенно не понятно.

Кроме того, остается технический вопрос. Т.к. я подозреваю, что для merge cell, все равно все ячейки которые собираемся merge нужно будет держать в "windows" (rows in memory). Если merge cell может быть на весь документ, то тогда тоже получим те же "яйца (куриные) но вид сбоку".

Test case нет, примера кода нет, что обсуждать, не очень понятно.

Лично я, например, Excel файл (XML) формирую на Oracle Forms вообще командами TEXT_IO.put_line() :-)
5 фев 19, 17:20    [21802096]     Ответить | Цитировать Сообщить модератору
 Re: И опять Apache POI. Потоковое создание excel со слиянием ячеек и подытогами.  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 4972
10 страниц спустя и пару месяцев - автор напишет либо jasper, либо yarg.
5 фев 19, 17:25    [21802102]     Ответить | Цитировать Сообщить модератору
 Re: И опять Apache POI. Потоковое создание excel со слиянием ячеек и подытогами.  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7512
AndronovMV
со слиянием ячеек с одинаковыми значениями в колонках
....я не могу пройтись заново по ней (чтобы вычислить что слиять....


Например с помощью Oracle или PostgreSQL аналитики, вполне можно кол-во повторяющихся "одинаковые значения в колонках" посчитать на уровне SQL-запроса, без хранения данных в ОП.

с групиировками и подитогами - тем более, второй проход даром не требуется
5 фев 19, 17:25    [21802103]     Ответить | Цитировать Сообщить модератору
 Re: И опять Apache POI. Потоковое создание excel со слиянием ячеек и подытогами.  [new]
AndronovMV
Member

Откуда: Тольятти
Сообщений: 123
Leonid Kudryavtsev,

автор
2) Формировать документ в один проход через стриминг Но тут мы не видем кода программы. Зачем при формирование документа нужно "пройтись заново" совершенно не понятно.

Имелось ввиду что начало массива уже нет, т.к. он отправился на жд, а метод
sheet.addMergedRegion(rowFrom,rowTo,colFrom,colTo);

предполагает наличие строк указанных в аргументах.

автор
Test case нет, примера кода нет, что обсуждать, не очень понятно.

Вопрос был обобщенный, т.с. на идею, а не на разрешение тех. проблем.

автор
Например с помощью Oracle или PostgreSQL аналитики, вполне можно кол-во повторяющихся "одинаковые значения в колонках" посчитать на уровне SQL-запроса, без хранения данных в ОП.

Попытаюсь объяснить. В нашей компании есть программисты (разработчики), а есть что-то типа функциональных спецов, который знают SQL на примитивном уровне, знаю предметную область хорошо и не знаю программирование в целом. Так вот их задача написать SQL запрос, зарегать и настроить его в системе как выгрузка EXCEL. Никакие подсчеты или прочие технические вопросы они реализовывать через SQL не будут.

автор
Лично я, например, Excel файл (XML) формирую на Oracle Forms вообще командами TEXT_IO.put_line() :-)

Да вот я тоже думаю как бы не пришлось через StringBuilder xml-ник строить и под видом xls его преподносить.
5 фев 19, 18:16    [21802139]     Ответить | Цитировать Сообщить модератору
 Re: И опять Apache POI. Потоковое создание excel со слиянием ячеек и подытогами.  [new]
AndronovMV
Member

Откуда: Тольятти
Сообщений: 123
Petro123
AndronovMV
У вас есть реализация, хотя бы простейшая своего решения?

2. Хотя бы с jasper решением сравни нормально. У тебя скрин простейшего отчета.

Не понял

Petro123
А мы типо не имеем право?

Дело не в этом
5 фев 19, 18:18    [21802140]     Ответить | Цитировать Сообщить модератору
 Re: И опять Apache POI. Потоковое создание excel со слиянием ячеек и подытогами.  [new]
AndronovMV
Member

Откуда: Тольятти
Сообщений: 123
Petro123,

Petro123
Решение чего?
Скопировать всю строку #2 с получением строки #3 и вторую заполнить ячейки?


Если не сложно прикрепи xls шаблон как ты это видишь.
А лучше код обработки этого файла.
Простейший, на одну-две колонки.
Просто для понимания тебя в целом.
5 фев 19, 18:22    [21802141]     Ответить | Цитировать Сообщить модератору
 Re: И опять Apache POI. Потоковое создание excel со слиянием ячеек и подытогами.  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7512
AndronovMV
....
Так вот их задача написать SQL запрос, зарегать и настроить его в системе как выгрузка EXCEL. Никакие подсчеты или прочие технические вопросы они реализовывать через SQL не будут.

Например Oracle поддерживает под-запросы (и есть даже фраза WITH и материализацию)

Т.ч. "обернуть" запрос в свой с нужной аналитикой, не проблема.

про другие базы не знаю

AndronovMV
....
Имелось ввиду что начало массива уже нет, т.к. он отправился на жд, а метод
sheet.addMergedRegion(rowFrom,rowTo,colFrom,colTo);

предполагает наличие строк указанных в аргументах.
...

я об этом предполагал (((
ну что можно сказать - печалька. Если merge может быть большой, то большая печалька.

AndronovMV
xml-ник строить и под видом xls его преподносить

Ну на мой взгляд, это не плохо.
XML spreadsheet - __стандартный__ и документированный формат для Excel-2007

IMHO & AFAIK
5 фев 19, 18:25    [21802143]     Ответить | Цитировать Сообщить модератору
 Re: И опять Apache POI. Потоковое создание excel со слиянием ячеек и подытогами.  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37872
AndronovMV
Petro123
Хотя бы с jasper решением сравни нормально. У тебя скрин простейшего отчета.

Не понял

Если jasper, то в чем проблема?
В нем sql вогнал и группировки свойствами и подотчетами как обычно.
5 фев 19, 18:38    [21802158]     Ответить | Цитировать Сообщить модератору
 Re: И опять Apache POI. Потоковое создание excel со слиянием ячеек и подытогами.  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37872
AndronovMV
Если не сложно прикрепи xls шаблон как ты это видишь.
вижу так:
Картинка с другого сайта.
https://habr.com/ru/post/422059/
Правда каюсь, что посмотрев POI я понял что он не умеет копировать строки с форматированием сразу.
Жаль.
А выше статья хабре очень интересный функционал с шаблонами.
5 фев 19, 19:43    [21802183]     Ответить | Цитировать Сообщить модератору
 Re: И опять Apache POI. Потоковое создание excel со слиянием ячеек и подытогами.  [new]
AndronovMV
Member

Откуда: Тольятти
Сообщений: 123
Petro123,

Пасиб.
Я вообще с POI работал с чистыми значениями, без формул и не знаю можно так вообще.
Почитаю еще, как че придумаю напишу.
6 фев 19, 07:53    [21802325]     Ответить | Цитировать Сообщить модератору
 Re: И опять Apache POI. Потоковое создание excel со слиянием ячеек и подытогами.  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4622
AndronovMV,

POI может в формулы Excel.
Только имена функция надо писать по английски, а не по русски (на русском не работают)
Но ИМХО, проще сразу из JasperReports генерит отчет в Excel (правда без формул)
6 фев 19, 14:01    [21802670]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Java Ответить