Сколько памяти при этом отъедает АОС аксапты в течении этих 10 минут ?
У меня была подобная задача. Выгрузить пару-тройку сотен тысяч строк из БД в файл excel в указанную пользователем сетевую папку.
С отягчающими обстоятельствами - пользователи могли в пакетный режим отправить сразу несколько подобных отчётов. При использовании вывода данных через DocumentFormat.OpenXML оперативная память на сервере быстро заканчивалась.
Красивая шапка в отчёте была не нужна, поэтому я использовал промежуточный файл CSV.
Файл в памяти не держится, заполняется через System.IO.File::AppendAllText. Накапливается несколько мегабайт данных, записывается в файл и так в цикле.
Потом файл открывается с помощью Microsoft.Office.Interop.Excel, устанавливаются форматы данных в столбцах и происходит сохранение в xlsx. Память сильно расходуется только в этот момент.
__________________
Дмитрий
|