Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / построение большого отчета в эксель (вэб приложение MVC 3) / 10 сообщений из 10, страница 1 из 1
05.07.2016, 13:31
    #39267931
denis_viktorovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение большого отчета в эксель (вэб приложение MVC 3)
Доброго времени суток!
Для создания отчетов использовал всегда CloseXML, что в общем устраивало всегда. Проблема возникла в специфическом отчете, его специфика в большом количестве данных, потребитель настаивает на возможности запуска по большому интервалу дат (год и более), и отсутствии какой либо группировки. В результате, при записи порядка 250к строк и пары десятков колонок в IXLWorkSheet получаю OutOfMemory. Посоветуйте компонент, для формирования такого объема отчетов в XLSX, возможно с записью в предварительно приготовленный шаблон...

З.Ы. Лобовое решение - начать изучать и прикручивать OpenXML SDK, но поддерживает ли он такие объемы?
...
Рейтинг: 0 / 0
06.07.2016, 04:58
    #39268431
Calabonga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение большого отчета в эксель (вэб приложение MVC 3)
denis_viktorovich,

Попробуй этот пример . Вроде бы не было замечаний по поводу производительности.
...
Рейтинг: 0 / 0
10.07.2016, 15:27
    #39271368
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение большого отчета в эксель (вэб приложение MVC 3)
denis_viktorovich,

http://epplus.codeplex.com/
...
Рейтинг: 0 / 0
11.07.2016, 05:04
    #39271525
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение большого отчета в эксель (вэб приложение MVC 3)
denis_viktorovich... получаю OutOfMemory.Результат пишешь в FileStream или MemoryStream ?
...
Рейтинг: 0 / 0
11.07.2016, 08:26
    #39271566
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение большого отчета в эксель (вэб приложение MVC 3)
denis_viktorovichПосоветуйте компонент, для формирования такого объема отчетов в XLSX, возможно с записью в предварительно приготовленный шаблон...
А почему бы Вам просто не взять подготовленный шаблон, записать туда 10к строк, сохранить на диск, освободив при этом память.
Заного открыть, записать ещё 10к строк, сохранить на диск... И т.д.
...
Рейтинг: 0 / 0
11.07.2016, 08:37
    #39271569
denis_viktorovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение большого отчета в эксель (вэб приложение MVC 3)
Алексей Кdenis_viktorovich... получаю OutOfMemory.Результат пишешь в FileStream или MemoryStream ?

В MemoryStream , но до сохранения не доходит, валится при записи очередной ячейки -

Код: c#
1.
sht.Cell(rowNum, 1).Value = row[1].ToString();
...
Рейтинг: 0 / 0
11.07.2016, 08:42
    #39271572
denis_viktorovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение большого отчета в эксель (вэб приложение MVC 3)
skyANAdenis_viktorovichПосоветуйте компонент, для формирования такого объема отчетов в XLSX, возможно с записью в предварительно приготовленный шаблон...
А почему бы Вам просто не взять подготовленный шаблон, записать туда 10к строк, сохранить на диск, освободив при этом память.
Заного открыть, записать ещё 10к строк, сохранить на диск... И т.д.

Видел такое решение, попробовал, почему то все равно падало в OutOfMemory. Но я добавлял новые листы к книге, сохранял ее и переоткрывал книгу заново. Попробую еще раз, но с одним листом.
...
Рейтинг: 0 / 0
11.07.2016, 08:48
    #39271576
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение большого отчета в эксель (вэб приложение MVC 3)
denis_viktorovichskyANAпропущено...

А почему бы Вам просто не взять подготовленный шаблон, записать туда 10к строк, сохранить на диск, освободив при этом память.
Заного открыть, записать ещё 10к строк, сохранить на диск... И т.д.

Видел такое решение, попробовал, почему то все равно падало в OutOfMemory.
Убедитесь, что память освобождается. Для этого не достаточно сохранить книгу. Надо ещё все ссылки прибить на объекты Excel.
...
Рейтинг: 0 / 0
11.07.2016, 09:24
    #39271594
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение большого отчета в эксель (вэб приложение MVC 3)
denis_viktorovichАлексей Кпропущено...
Результат пишешь в FileStream или MemoryStream ?

В MemoryStream , но до сохранения не доходит, валится при записи очередной ячейки -

Код: c#
1.
sht.Cell(rowNum, 1).Value = row[1].ToString();

Используй "голый" OpenXML, без обёрток вроде CloseXML, и пиши в FileStream.
...
Рейтинг: 0 / 0
22.07.2016, 11:58
    #39278494
nikdmt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
построение большого отчета в эксель (вэб приложение MVC 3)
Можно использовать Microsoft LocalReport.Render(...) запрашивая у него EXCEL-формат.
Работает быстро на больших объёмах строк даже с мержем ячеек и другим форматированием.
Мерж ячеек медленно работает в CloseXML и epplus.

Одна проблема - нельзя точно управлять строками и колонками - может получиться, что внешний вид (для печати) нормальный, а состав строк/колонок - не совсем то, что нужно. Например присутствуют пустые нулевой длины колонки. Но это при сложном форматировании.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / построение большого отчета в эксель (вэб приложение MVC 3) / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]