Предлагаю посмотреть в следующем направлении. Предположим нам нужно записать данные в Excel файл. Причем, файл должен содержать фильтры по столбцам и оформлен заранее пользователем (заказчиком). Для решения вам необходимо изменить расширение файла имя_файла.
xlsx на имя_файла.
zip. Распаковать архив.
В директории, в которую был распакован архив, нас интересует:
- sharedString.xml - хранит все строковые значения
- sheet1.xml - хранит остальные данные
Дополнить файлы, вашими данными (Linq To Xml). Упаковать все в архив, например, используя SharpZipLib.
Такой подход позволит вам формировать отчеты, не требуя установки MS Excel на компьютере пользователя (многие используют Open Office). Такой подход подходит для серверных решений.