2011-07-26 5 views
0

У меня есть надстройка excel, которую я создал. Что я хочу сделать, так это открыть документ excel в C# (ASP.NET) и запустить некоторый код в надстройке, а затем вернуть документ excel в виде html-страницы.excel interop - как запустить excel com надменный код

Можно ли это сделать?

ответ

0

В Com надстройку я должен был добавить:

public partial class ThisAddIn 
{ 
    ... 
    protected override object RequestComAddInAutomationService() 
    { 
     if (addinUtilities == null) 
     { 
       addinUtilities = new AddinUtilities(); 
     } 
     return addinUtilities; 
    } 
... 
} 

Вы должны вернуть объект из этой функции, этот объект может впоследствии использоваться в Interop как в фрагменте кода ниже. добавьте любую функциональность, которую вы хотите открыть этому объекту.

Затем используйте надстройку следующим образом:

Application app = new Application(); 
var myAddin = app.COMAddIns; 
var count = myAddin.Count; 
COMAddIn addin; 
for (int i = 1; i <= count ; i++) // not zero indexed 
{ 
    addin = myAddin.Item(i); 
    var ob = addin.Object; 
    var str = addin.ProgId; 
    if (ob != null) 
    { 
     ob.RunQuery(ws); 
    } 
} 

Как вы можете видеть, я не нашел хороший способ идентификации моей надстройки (если кто-нибудь знает один я хотел бы услышать), но вы могут перебирать их и проверять progId.

addin.Object - объект, который мы вернули с RequestComAddInAutomationService.

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

  • Нет связанных вопросов^_^