Как получить конкретную библиотеку объектов Excel без соответствующей установленной версии Office
Я разрабатываю приложение для автоматизации Excel, которое читает и записывает в электронную таблицу Excel. На моем компьютере установлен Office 2007. Поэтому я могу ссылаться на библиотеку объектов Excel 12.0 и библиотеку объектов Excel 5.0. Я не хочу использовать Excel 5.0, потому что он действительно довольно старый и плохо документированный. Поэтому я ссылаюсь на Excel 12.0.
Однако на целевой машине установлен Office 2003 и, следовательно, только Excel 11.0. Поэтому, когда я компилирую свою программу, она падает на целевая машина, так как ссылочная библиотека отличается.
Мне было интересно, есть ли способ получить Excel 11.0 без установки Office 03? Я попытался найти ответы из msdn и страницы поддержки microsoft, но ничего не смог найти? Это довольно странно, так как это может произойти и в будущем, когда разработчики будут иметь более новые версии Office, чем клиенты?
4 ответа:
Посмотрите на мой проект с открытым исходным кодом MS Office Wrapper для .NET . Экземпляр объекта приложения Office создается динамически с помощью метода CreateObject, а затем используется возможность поздней привязки, поэтому вам не нужна "строгая ссылка" на любую версию библиотек MS Office.
Вы можете использовать C#, VB.NET, J# и т. д...
Исходный код тоже доступен.
На самом деле вам не нужно сражаться так сильно. Просто включите в дистрибутив последнюю версию Office PIA (2007). Он обратно совместим с Office 2003.
Пожалуйста, прочитайте блог команды продуктов Excel и подробный ответ о совместимости здесь .
Мы включаем 2007 PIA в дистрибутив и не имеем никаких проблем с работой предыдущей (2003) версии Excel.
MS Office Wrapper для .NET упоминание здесь очень хорошая альтернатива.
Я очень доволен SpreadsheetGear . Этот компонент позволяет читать и записывать файлы excel. Я использую его для отчетов, клиентская машина имеет только Excel Viewer (который является бесплатным) для чтения файлов и их печати.
Я использую Excel Viewer 2003, потому что версия 2007 имеет ошибку печати (при печати это promt вы открываете диалоговое окно файла)