Excel Interop - Как запустить код дополнения Excel Com
-
27-10-2019 - |
Вопрос
У меня есть дополнение Excel, которое я создал. Что я хочу сделать, так это открыть документ Excel в C# (asp.net), запустить какой-то код в надстройке, а затем вернуть документ Excel в качестве HTML-странице.
Можно ли это сделать?
Решение
В дополнение я должен был добавить:
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);
}
}
Как вы можете видеть, я не нашел хорошего способа определения моего надстройки (если кто-то знает о том, что я хотел бы услышать), но вы можете перевернуть их и проверить прогид.
addin.Object
это объект, от которого мы вернули RequestComAddInAutomationService
.