==========================
Во-первых, клиента не нужно заставлять покупать MS Office, отчеты могут быть открыты любой совместимой программой, например, часть знакомых использует Open Office.
Это да и мне в этом плане нравится возможность открытия в notepad.exe и простота индексирования — офисный поисковик работает тупо и убого, а тут можно XPath строить или просто в тексте искать
==========================
Чтение раздела «Microsoft Office 2003 XML Reference Schemas» показало, что совместимость трех последних версий Excel, т.е. 2003/2002/2000 имеет место быть.
Да, но реальные возможности начинаются только в XP (без наворотов 2003 легко обойтись, а вот схема 2000 достаточно убога)
===========================
Во-первых, мы создаем отчеты в Excel, используя заготовленные шаблоны, т.е. открывается в Excel файл-макет, заполняется шапка, столбцы, метки, стили ячеек и т.д. Затем в run-time программы этот шаблон открывает Excel.Application и заполняются сами данные, что экономит время на дизайн отчета. Вопрос, чем и как это делать без Excel в формате XML.
Так как шаблоны это вещь, которая не реферируется а просто копируется в новый документ, то проще всего сохранить шаблон как XML, а потом построить из него обволакивающий XSLT, который генерит некий статический контент, а в нужных местах вызывает шаблоны, подставляет значение и т.д.
В любом случае надо перестроиться — работа с COM — динамическое создание документа, когда можно что-то куда-то воткнуть задним числом, поменять свойства уже существующих элементов. ПРи использовании XML/XSLT надо сразу построить готовый "имейдж" файла, как буд-то мы правили правили его в Экселе, а потом нажали кнопку сохранить.
==================================
=============================
Можно так же создать шаблон, как и ранее, но занесение данных в отчет через автоматизацию Excel имеет компактный код, а если не иметь Excel и открывать заготовленный XML шаблон с массой стилей и XML тегов, встает вопрос о занесении данных, парсинг и анализ структуры такого документа гораздо более объемная вещь, чем автоматизация Excel, код будет запутанным и огромным.
XSLT дело модульное — можно разбить не только на удобочитаемые блоки, но и блоки с повторным использовнаием, можно обернуть частые, но трудочитаемые теги Excel в виде именованных шаблонов с параметрами и т.д. и т.п.
=================================
=================================
Главное, нужна библиотека, которая позволит компактным кодом манипулировать шаблонами отчетов для Excel в формате XML.
Эта библиотека — System.Xml.dll и больше ничего не надо кроме знаний по XSLT ну и опыта работы с XML — первый свой отчетик я стряпал долго, муторно и с мучениями — надо перестраиваться от привычного процедурного програмирования на декларативный стиль.
XSLT в .NET поддерживает расширения, скрипты и т.д. так что ни по какому функционалу, который может потребоваться при генерации ограничений нет.
Советую просто попробовать (лучше не сразу с огромного отчета с кучей формул и форматирования, а с чего-то попроще). Сделать это исключительно с XSLT, избегая где можно прямого кодирования. Увидите как прелести этого дела, так и проблем куча вылезет, если с XML большого опыта нет. Пишите, посоветуемся...
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение