Хорошо, для начала, все возможно с достаточным усилием в программировании. При этом, единственный способ, которым я могу придумать, это сделать:
1. В приведенном ниже коде элемент управления reportViewer отображает отчет в Excel в виде байтового массива, а затем передает этот байтовый массив стороннему элементу управления Excel, который может установить пароль или защитить книгу от записи. , а затем пошлите это как поток ответов .. Много работы, да.
2. Замените или переопределите функцию экспорта в Excel для ReportViewer и заново напишите пользовательский метод синтаксического анализа / генерации Excel, аналогичный тому, который был описан в вашей публикации SO. Хлоп.
Наиболее логичным путем на этом пути, вероятно, было бы обучение клиента этому конкретному «требованию» и тому, что оно будет означать с точки зрения времени разработки.