Использование Office.Interop.Excel на компьютерах, где MS Office не установлен

1

У меня есть приложение, которое использует Microsoft.Office.Interop.Excel, когда я развертываю его на машинах, где нет какой-либо версии MS Office, я получаю следующую ошибку

Изображение 174551

Я попытался установить VSTOR, как указано в этом, так что ответ COM-объекта с CLSID {00024500-0000-0000-C000-000000000046} либо недействителен, либо не зарегистрирован, но это не решило проблему.

  • 0
    Что именно вы собираетесь делать с Excel? Не могли бы Вы уточнить?
  • 0
    Я собираюсь только читать данные из файлов Excel (XLS и XLSX)
Показать ещё 2 комментария
Теги:
excel
com
office-interop

3 ответа

3
Лучший ответ

Если вам нужно работать только с открытыми документами XML (*.xslx), вы можете использовать Open XML SDK. Дополнительную информацию см. В разделе " Добро пожаловать в Open XML SDK 2.5 для Office".

В случае формата двоичного файла вам необходимо использовать любые сторонние компоненты, для которых Office/Excel не установлен на компьютере.

Обратите особое внимание на следующий факт:

Microsoft в настоящее время не рекомендует и не поддерживает автоматизацию приложений Microsoft Office от любого бездействия, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может проявлять нестабильное поведение и/или тупиковой ситуации, когда Office запущен в этой среде.

Если вы создаете решение, которое выполняется в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были безопасны для автоматического выполнения. Или вы должны попытаться найти альтернативы, которые позволяют хотя бы часть кода запускать клиентскую сторону. Если вы используете приложение Office из серверного решения, для успешного выполнения приложения не будет достаточного количества необходимых возможностей. Кроме того, вы рискуете стабильностью своего общего решения.

Подробнее об этом читайте в статье " Вопросы для автоматизации Microsoft Office".

  • 0
    Я закончил с использованием NPOI. Спасибо @ Евгений
2

Вы не можете использовать библиотеки Microsoft Interop, если MS Office не установлен. Вы можете посмотреть альтернативные варианты чтения файлов Excel или Word. Существует множество бесплатных и (платных) библиотек С#, которые вы могли бы использовать для этой цели, например:

https://exceldatareader.codeplex.com/

https://github.com/ExcelDataReader/ExcelDataReader

0

Вам необходимо загрузить и установить Microsoft Office {year}: Primary Interop Assemblies - бесплатно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню