Я хочу изучить этот путь работы с Excel динамически. Загрузка всех COM-типов Excel динамически?
Я хочу использовать Excel в своем приложении C# без включения DLL и т. Д. Сначала я просто проверил бы, будет ли установлена требуемая версия Excel и запустите ее.
Прежде всего я хочу, чтобы получить все типы, мне нужно, но я не могу достать из них:
// works
Type typeExcel = Type.GetTypeFromProgID("Excel.Application");
object excel = Activator.CreateInstance(typeExcel);
object workbooks = typeExcel.InvokeMember("Workbooks", BindingFlags.GetProperty, null, excel, null);
// this doesn't work, returns null
Type typeWorkbooks = Type.GetTypeFromProgID("Excel.Workbooks");
Без правильных типов я не могу вызывающими членов. Так что я делаю неправильно? Как загрузить все типы, которые мне нужны, и знать, что они есть? Моя текущая версия Excel - 2003 год. Причины для этого: Если я включаю COM-библиотеки, которые не установлены в целевой системе, мое приложение не запускается. Если я загружу их динамически, я могу проверить их существование и уведомить пользователя о недостающей функциональности.
Что вы пытаетесь выполнить точно?Если вы хотите полагаться на interop (и, следовательно, не нужно использовать библиотеки DLL, но вам нужно добавить данную ссылку к вашему проекту и настроить свою разработку на специально упомянутую версию (ы) Office), вам не нужно это делать. Здесь вы найдете руководство по началу работы: http://support.microsoft.com/kb/302084/en-us – varocarbas
PS: также помните, что Office 2003 довольно старый и имеет «некоторые особенности». Например, на компьютере, где вы хотите использовать приложение, необходимо установить «Распространяемые первичные сборочные сборки» (http://www.microsoft.com/en-us/download/details.aspx?id=20923). Это также требуется в Office 2007 (его конкретный пакет); но уже не с Office 2010. – varocarbas
@varocarbas Я попрошу моего босса позже, если я смогу работать с Office 2010. Но на данный момент я застрял в 2003 году. – Bitterblue