VSTO开发Excel自定义公式的问题

问题描述

我目前在用VSTO开发Excel的插件,里面有自定义菜单,也有些自定义公式。碰到个问题:在自定义公式里得不到当前的Application。Globals.ThisAddIn为null,不知道为什么;(

解决方案

解决方案二:
该回复于2011-12-27 12:00:13被版主删除
解决方案三:
usingSystem.Runtime.InteropServices;usingMicrosoft.Win32;usingSystem;usingSystem.Windows.Forms;usingMicrosoft.Office.Interop.Excel;namespaceUDFTest{[Guid("05DE8F39-D755-4912-B40F-EDD5EC37CEBA")][ClassInterface(ClassInterfaceType.AutoDual)][ComVisible(true)]publicclassUDF{publicstringGetAppName(){returnGlobals.ThisAddIn.Application.ActiveSheet.Name;//Globals.ThisAddIn为null}[ComRegisterFunction]publicstaticvoidRegisterFunction(Typetype){Registry.ClassesRoot.CreateSubKey(GetSubKeyName(type,"Programmable"));varkey=Registry.ClassesRoot.OpenSubKey(GetSubKeyName(type,"InprocServer32"),true);key.SetValue("",Environment.SystemDirectory+@"mscoree.dll",RegistryValueKind.String);}[ComUnregisterFunction]publicstaticvoidUnregisterFunction(Typetype){Registry.ClassesRoot.DeleteSubKey(GetSubKeyName(type,"Programmable"),false);}privatestaticstringGetSubKeyName(Typetype,stringsubKeyName){vars=newSystem.Text.StringBuilder();s.Append(@"CLSID{");s.Append(type.GUID.ToString().ToUpper());s.Append(@"}");s.Append(subKeyName);returns.ToString();}publicvoidtest(){objectaddInName="ExcelImportData";Microsoft.Office.Core.COMAddInaddIn=Globals.ThisAddIn.Application.COMAddIns.Item(refaddInName);IAddInUtilitiesutilities=(IAddInUtilities)addIn.Object;utilities.ImportData();}}
解决方案四:
usingMsExcel=Microsoft.Office.Interop.Excel;usingMicrosoft.Office.Core;publicvoidOnConnection(objectapplication,Extensibility.ext_ConnectModeconnectMode,objectaddInInst,refSystem.Arraycustom){applicationObject=application;addInInstance=addInInst;app=(MsExcel.Application)application;}MsExcel.Applicationexcelapp=(MsExcel.Application)app;
解决方案五:
usingMsExcel=Microsoft.Office.Interop.Excel;usingMicrosoft.Office.Core;publicvoidOnConnection(objectapplication,Extensibility.ext_ConnectModeconnectMode,objectaddInInst,refSystem.Arraycustom){applicationObject=application;addInInstance=addInInst;app=(MsExcel.Application)application;}MsExcel.Applicationexcelapp=(MsExcel.Application)app;
解决方案六:
sinitek123:你这个是共享的外接程序模式吧。

时间: 2024-10-21 16:50:31

VSTO开发Excel自定义公式的问题的相关文章

开发excel插件-vsto开发Excel插件遇到的问题,在线等

问题描述 vsto开发Excel插件遇到的问题,在线等 开发出来的插件,安装到本地计算机没有问题,但是安装到其他计算机上就不可以了,程序会报错,错误代码如下:求大神给解决,这个开发我是一边学一边开发的,,,不对的地方,还希望大家多多指点 解决方案 http://blog.csdn.net/songkexin/article/details/1903745

VSTO 开发Excel外接程序提示 签名问题

问题描述 请问,我用VS2010准备做一个excel外接程序时,在生成时提示错误"签名时出错:指定了无效的提供程序类型."导致根本就生成不了,请问如何解决?谢谢了 解决方案 解决方案二:我主要是换了一个电脑在原来那个电脑里就好使在另外一台电脑上即使导入clickonce签名也安装不上证书.另vs2010为什么自动将clickonce打上勾呢?解决方案三:重新签名呗.不就是点2.3下鼠标,vs就会取消签名和自动签名,几秒钟的事嘛.解决方案四:引用2楼sp1234的回复: 重新签名呗.不就

VSTO 开发excel的应用,使用DateGridView时出现的问题

问题描述 具体功能:1.在excel中选中部分单元格,点击某个按钮,弹出winform的窗体:2.窗体上存放了一个DateGridView控件,里面列表的方式显示当前选中的单元格:3.其中有个列是下拉的方式选择相应的值.我的具体做法:1.建立一个dataset和DateGridView绑定2.其中的下拉选项的列使用的是DataGridViewComboBoxColumn问题:绑定好了都没有问题,就是在运行的时候,点击下拉框的时候,总是报错.提示信息如下:在可以调用ole之前,必须将当前线程设置为

VSTO 学习笔记(十二)自定义公式与Ribbon

原文:VSTO 学习笔记(十二)自定义公式与Ribbon 这几天工作中在开发一个Excel插件,包含自定义公式,根据条件从数据库中查询结果.这次我们来做一个简单的测试,达到类似的目的. 即在Excel 2010中添加一个Ribbon,包含4个自定义公式:仅仅是示例公式加减乘除. 最终效果: 测试代码下载   1.解决方案包含两个项目: ExcelAddIn:Excel 插件 ExcelUDF:Excel 自定义公式 2.首先创建一个Excel 2010 Add-in项目: 3.添加一个可视化Ri

浅谈Excel开发(四) Excel自定义函数

相关文章: 浅谈Excel开发(1) Excel开发概述 浅谈Excel开发(二) Excel 菜单系统 浅谈Excel开发(三) Excel 对象模型 我们知道,Excel中有很多内置的函数,比如求和,求平均,字符串操作函数,金融函数等等.在有些 时候,结合业务要求,这些函数可能不能满足我们的需求,比如我想要一个函数能够从WebService上获取 某只股票的最新价:我想要一个函数能够获取当前的天气情况,这些需求我们可以通过编写Excel自定义 函数(User Define Function

自定义公式 让Excel对重复数据自动弹出警告信息

大家在使用Excel2007编辑工作表格时经常要输入大量数据,有时要求输入的这些数据是不允许重复的,例如常见的身份证号码等,一旦错误输入查找起来那可是相当麻烦的一件事.对于这个问题,其实我们可以自定义公式,让Excel对重复数据能够自动弹出警告信息,以便及时提醒操作人员. Step1:运行Excel 2007程序并新建一个工作表格,然后按下"Ctrl+A "组合键全选该表格. Step2:单击"数据"菜单,然后在"数据工具"功能区域中选择&quo

excel表格公式失灵怎么办

  excel表格公式失灵的解决方法 excel表格公式失灵的解决方法1:拿个基础例子说明了,表中前三列加起来,用公式计算得出第四列合计.目前数据是正确的. excel表格公式失灵的解决方法2:修改了AB的数据,结果合计还是没变化.这种情况出现往往和你的一些什么设置有关. excel表格公式失灵的解决方法3:继续观察,双击单元格,看到公式的确还在,并且公式是正确的. excel表格公式失灵的解决方法4:经过刚才的双击公式后,发现能计算出最新的正确结果了. 继续反复测试发现,修改数据后必须双击一下

c#-vsto开发word2007插件的问题

问题描述 vsto开发word2007插件的问题 我最近在用vsto开发一个word插件(c#),我期望这个插件的作用是,当用户点击"打印"按钮,之后确定打印时,我的自定义窗体会弹出来.这个功能我是用"DocumentBeforePrint"实现的,在word2010和2013上是正常的.在2010及以上版本,点击"打印"之后会弹出一个标签页可以进行打印设置,再点标签页中的"打印"我的自定义窗体会弹出来,在word2007上,

如何开发Spring自定义视图和视图解析器

本文将通过一个示例来介绍如何开发 Spring 自定义视图和视图解析器,来显示后缀名为 SWF 的视图,并提供一个简单的注册机制,为特定后缀名的视图注册相应的视图解析器. 什么是 Spring 视图和视图解析器 Spring MVC(Model View Controller)是 Spring 中一个重要的组成部分,而 Spring 视图和视图解析器则是 Spring MVC 中的组成部分.在介绍 Spring 视图和视图解析器前,我们先了解下在 Spring MVC 框架中,一个 Web 请求