Excel Interop - как запустить код надстройки Excel Com
У меня есть надстройка Excel, которую я создал. Что я хочу сделать, это открыть документ Excel в C# (ASP.NET) и запустить некоторый код в надстройке, а затем вернуть документ Excel в виде HTML-страницы.
Можно ли это сделать?
1 ответ
В надстройке Com я должен был добавить:
public partial class ThisAddIn
{
...
protected override object RequestComAddInAutomationService()
{
if (addinUtilities == null)
{
addinUtilities = new AddinUtilities();
}
return addinUtilities;
}
...
}
Вы должны вернуть объект из этой функции, позже этот объект можно использовать во взаимодействии, как показано ниже во фрагменте кода. добавить любую функциональность, которую вы хотите выставить этому объекту.
Затем используйте надстройку следующим образом:
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
,