【问题标题】:Excel-Dna get globals propertiesExcel-Dna 获取全局属性
【发布时间】:2017-06-02 17:01:43
【问题描述】:

我使用 excel-dna 作为基本函数,然后我从插件调用“vsto”函数来触发所选函数的 Web 服务请求。我的问题是我想使用 DNA 函数来解析要发送到服务的范围。它当前返回一个字符串(“等待服务调用...”),如果 VSTO 方法调用该函数,它会传递另一个变量以返回其他内容。

我无法提取字符串以外的其他内容,当我在 vsto 中使用“评估”时,对象返回为空。

我认为最好的方法是从 excel-dna 函数访问存储在 vsto 插件中的全局缓存变量。我无法做到这一点。

插件按钮按下 => 插件评估 Excel DNA => DNA 将数据存储在 VSTO 插件变量中 => VSTO 调用服务并粘贴返回的数据。

谢谢,

【问题讨论】:

    标签: excel com vsto excel-dna


    【解决方案1】:

    好的,我发现: MSN Blog

    namespace AddIn{
    
        [ComVisible(true)]
        [Guid("****************************")]
        [InterfaceType(ComInterfaceType.InterfaceIsDual)]
        public interface IAddinUtilities
        { void youraddinfunction();
        }
    
      [ClassInterface(ClassInterfaceType.None)]
        public partial class ThisAddIn : IAddinUtilities
        {
            protected override object RequestComAddInAutomationService()
            { return this; }
    
            public void yourfunction (){ DoSomething }   
    }
    

    在excel Dna函数中:

    var application = (Application)XL.ExcelDnaUtil.Application;
    
                var addin = application.COMAddIns.Item(AddinName);
                var what = addin.Object;
                what.youraddinfunction;
    

    【讨论】:

      【解决方案2】:

      Yoyo 的方法严格来说是正确的,但对于更便携的方法,我建议将 ExcelDNA 与 NetOffice 结合使用。这是一个帮助您入门的 sn-p。请注意,您需要在 OnDisconnection 方法中清除应用程序对 COM 代理对象的引用。更多详情,请查看Excel Addin Portability Tutorial

      [ComVisible(true)]
      [ClassInterface(ClassInterfaceType.AutoDispatch)]
      [ProgId("Sample.MyAddIn")]
      public class MyRibbon : ExcelRibbon
      {
      
         public override void OnConnection(object comApp, ext_ConnectMode ConnectMode, object objAddin, ref Array custom)
         {
           // glue NetOffice + Excel DNA
           m_ExcelApplication = new Application(null, m_ComApplication);
           // other initialization... 
         }
      }
      

      【讨论】:

      • 谢谢。所以基本上你摆脱了 Com 对象问题并将所有东西都放在同一个命名空间下?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      相关资源
      最近更新 更多