Если список загружаемых Excels фиксирован, вы можете сгенерировать их в фоновом потоке и вернуть прямую ссылку для скачивания. Даже если он меняется один раз в час или 2, его стоит делать вместо генерации по требованию.
Другой подход может быть, когда пользователи выбирают список продуктов и просят, чтобы Excel предоставил опцию, если они хотели бы получить электронное письмо со ссылкой для скачивания или даже получить файл в виде вложения в электронное письмо. Если они принимают, отправьте каждый запрос в очередь и запустите пакетное задание, которое генерирует лист Excel и отправляет их в виде почтовых вложений. Таким образом, вы не ограничите веб-сервер.
Кроме того, мой главный вопрос заключается в том, почему это занимает больше минуты, а какая часть процесса занимает много времени. Стоит исследовать эту область (подключение к БД {объединение в пул, совместное размещение серверов}, огромная таблица {раздел}, генерация Excel)?
Вы добавляете фиксированную графику к каждому Excel? если это так, используйте шаблоны, которые уже имеют верхние и нижние колонтитулы и т. д.
Стоит взглянуть на кусочки, которые создают узкие места, а не слепо говорить, что это плохой дизайн / подход.
Расследование, вероятно, исправит текущие проблемы, или, по крайней мере, вы не будете переносить те же ошибки в будущем дизайне