Excel Interop - Как запустить код дополнения Excel Com

StackOverflow https://stackoverflow.com/questions/6831324

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top