首页 新闻 会员 周边 捐助

开发Excel插件,解决其兼容性问题?

1
[待解决问题]

使用C# 开发中的 Shared Add In 技术开发 Excel Add In。在插件初始化时,载入自定义公式 .xll文件,但是在以下代码在Office 2010 版本是好用的,但是在 Office 2013及以上版本会抛出该方法无效的异常。

AddIn udfAddIn = applicationObject.AddIns.Add(progID, true);

udfAddIn.Installed = load;

异常会在第一句话抛出。求大神。。。。

AlvinNiu的主页 AlvinNiu | 菜鸟二级 | 园豆:202
提问于:2017-12-19 15:24
< >
分享
所有回答(1)
1
dudu | 园豆:29732 (高人七级) | 2017-12-19 18:44

如果还是解决不了,建议提供一下异常堆栈

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 18:46

谢谢,我就是按照这个博客开发的。上面的方法在 office 2010 上运行时没有问题的,但是在 office 2013与2016 下面的代码会抛出那个异常。

AddIn udfAddIn = applicationObject.AddIns.Add(progID, true);

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 18:47

@Alvin_Hi: 完整的异常信息是什么?

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 18:53

@dudu: 异常信息:addin类的add方法无效

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 19:11

@Alvin_Hi: 关键是异常堆栈信息

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 19:14

@Alvin_Hi: 或者提供示例代码,我这边测试一下

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 19:21

@dudu: 稍等一下,我把代码提取出来

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 19:25

@dudu: 借用您发给我的博客 浅谈Excel开发:四 http://files.cnblogs.com/yangecnu/YYUDF.rar

其中运行 YYSharedAddin 这个项目。在 137行就会抛异常。在2010 正常加载。

顺便问一下,测试Office的不同版本,除了用多个机器外,还有没有什么办法?

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 19:33

@Alvin_Hi: 可以使用虚拟机,比如vmware

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 19:40

@Alvin_Hi: 稍等一下,今天晚上我会把这个问题解决

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 19:41

@dudu: 麻烦您了,在网上找了好多资料,找不到解决方案。。我就是想无论是在office那个版本上,通过 shared Add in 这种办法开发的插件,加载 excel-dna开发的自定义公式。也就是.xll文件。

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 19:44

@dudu: 正在用的就是这种办法,但是 虚拟机开两个,计算机8G内存就爆掉了。哈哈

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 19:44

@Alvin_Hi: 可以限制虚拟机的内存,或者使用阿里云或腾讯云的按量计费的云服务器

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 19:50

@dudu:好的,不错的建议

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 19:51

@Alvin_Hi: 异常是在安装插件时出现的吗?

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 21:15

@dudu: 异常是在运行插件时,加载.xll文件发生的。安装过程不会出现异常

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 21:16

@Alvin_Hi: 怎么运行插件?我已经安装好插件了,想重现这个问题

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 21:17

@dudu: 

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 21:21

@Alvin_Hi: F5运行起来了,然后呢?之前我是直接在Excel中添加编译好的插件

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 21:27

@dudu: 

 

在这里加断点。就是这里抛出的异常

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 21:30

@Alvin_Hi: 

我在Excel 2016中手动安装插件是可以正常运行的

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 21:36

@dudu: 手动添加没问题,就是用程序走到哪一步的时候会抛异常的。你那里没有异常抛出吗?

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 21:37

@dudu: 程序中有两种,一种是.xla ,一种是.xll

我这里是加载.xll出现的异常

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 21:43

@Alvin_Hi: 你手动在Excel中安装插件也会出现这个异常吗?

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 21:53

@dudu: 我就是直接F5运行时,在catch中捕获到的,加载的.xll文件不需要手动添加,你手动添加,是因为程序加载的.xla文件。

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 22:00

@dudu: 很晚了,耽误您这么长时间,您早点休息。明天咱们继续。

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 22:02

@Alvin_Hi: 我这边按F5也能正常运行,你是不是把项目放在中文目录下的?

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 22:05

@Alvin_Hi: 另外有个地方需要注意,要在 YYSharedAddin 项目中添加对 YYWeatherUDFExcelDNA 项目的引用,不然在 build 时会缺少 YYWeatherUDFExcelDNA.dll ,也许问题与这个有关。

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 22:14

@dudu: 谢谢您的耐心,我明天看看,有问题。我再联系您。再次感谢

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 22:28

@dudu: 这个文件是不需要引用的,因为Excel-DNA中的所有dll均生成在.xll文件中。

支持(0) 反对(0) AlvinNiu | 园豆:202 (菜鸟二级) | 2017-12-19 22:31

@Alvin_Hi: 我在 Excel 中手动添加 YYWeather-packed.xll ,如果缺少 YYWeatherUDFExcelDNA.dll 会报错

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2017-12-19 22:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册