2013-05-30 5 views
1

Мне нужно использовать Excel, если он установлен на целевой машине или создает файл text, если это не так..net обнаруживает, существует ли Office.interop.Excel

проверить наличие ключа реестра excel application, но прежде, чем я могу сделать это, я получаю

System.IO.FileNotFoundException: Could not load file or assembly Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral,PublicKeyToken=71e9bce111e9429c 

или один из его зависимостей.

Как определить, имеется ли сборка interop и предотвратить попытку загрузки run-time, если это не так. (Я не знаю, какая версия Excel может существовать на цели, так что я не думаю, что я могу распространять в interop в случае его неправильный.)

+0

Я думаю, что это может помочь http://stackoverflow.com/questions/3266675/how-to-detect-installed-version-of-ms-office/3267832#3267832 –

+0

Вы добавили ссылку на Interop сборка к вашему объекту? Появляется ли ошибка до того, как приложение даже начнет работу или появится в определенной строке кода? –

ответ

2

кажется, что вы добавили ссылку на конкретную Interop сборки в вашем коде. Ваше приложение даже не загружается, так как оно не может найти все сборки, которые необходимо выполнить. Если вам абсолютно необходимо использовать Excel через Interop, вам придется удалить ссылку и загрузить сборку динамически с помощью Assembly.Load.

Вам совсем не нужен Excel, если вы хотите прочитать или создать файл Excel.

XLSX - это всего лишь куча файлов ZIP-файлов. OpenXML SDK от Microsoft позволяет вам манипулировать файлами withoud, имея дело с XML напрямую, и есть другие библиотеки, которые сидят поверх SDK, чтобы упростить программирование.

Generating Excel 2010 Workbooks by using the Open XML SDK 2.0 предлагает довольно подробное объяснение формата XLSX и то, как вы можете использовать SDK для простого и простого создания простых электронных таблиц.

+0

Ah, legacy, legacy - Мне нужно было выпустить exsitng файлы xls, а также файлы xlxs. – Phil

+0

Я планирую использовать Assembly.load и поймать исключения, но знаете ли вы, где я могу найти длинное имя для ассемблеров для Excel 2012 и 2010? – Phil

Смежные вопросы