2015-01-29 3 views
1

Я использую EPPlus для создания отчета xls ежедневно и еженедельно. Но иногда график времени больше одного года, и в моем последнем случае это было три года, поэтому общее количество строк составляет около 180 тыс.EPPlus, обрабатывающий большой ExcelWorksheet

В этом случае я оптимизировал запрос к базе данных SQL Server, но я думаю, что моя шея бутылки является объектом «ExcelWorksheet»: я предполагаю, что есть шанс сохранить ее в файле 50 тыс. Строк за раз, а не сохранить его полностью, поэтому использование памяти может быть меньше, чем сейчас.

У кого-нибудь есть идея о реализации?

ответ

1

К сожалению, у меня нет больших новостей. Посмотрите на них:

EPPlus Large Dataset Issue with Out of Memory Exception

Load large amount of excel data with EPPlus

Короткий ответ EPPlus будет работать из памяти, как вы обнаружили уже. Даже с последней версией 4, которая обновила процесс хранения, чтобы уменьшить размеры объекта ячейки, я все еще сталкиваюсь с лимитом.

В первой ссылке я расскажу о написании кода для обработки XML, но у него не было времени попробовать. Если вы найдете что-нибудь с этим, я бы с удовольствием это увидел :).

Но если вы хотите экспортировать листы в партиях по 50K, вам необходимо сделать это в отдельных файлах, а затем объединить их с чем-то вроде VBA вне EPPlus, как я упоминал в одном из протекторов. Я показываю пример чего-то подобного здесь, где VBA срабатывает автоматически при загрузке листа:

EPPlus Pivot Table - Copy Values to New Sheet

Смежные вопросы