Tag: vsto

Excel Visual Studiodevise时间适配器加载项错误

我正在尝试使用VSTO打开Excel工作簿2003。 但是我再次遇到错误 “无法创build项目,因为应用程序加载项工作不正常,可能已被禁用。若要检查Microsoft Office应用程序中禁用的项目,请打开帮助菜单,单击关于Microsoft Office Word或关于Microsoft Office Excel,然后单击“禁用的项目”如果出现“Word Visual Studiodevise时间适配器外接程序”或“Excel Visual Studiodevise时间适配器外接程序”,请select该项并单击启用如果不是,请重新安装或修复Visual Studio Tools办公室。” 有人可以帮忙吗?

为什么Excel VSTO插件在较高规格的机器上运行速度较慢?

我使用VSTO和VS 2008在C#中开发了一个Excel 2003插件。这个插件在我的机器(HP NC6320笔记本电脑,3GB RAM T5600 1.8ghz Core2 cpu)上工作得很好,但是当在另一个用户机器上testing时nc6710b笔记本电脑2GB内存,T7200 2ghz Core2 CPU),这是相当慢。 我也在另一台笔记本电脑上试过,和我的一样,而且速度也很快 我已经经历了显而易见的事情,例如正在运行的应用程序,防病毒软件等。这些机器都是完整的补丁,并且是最新的。 基本上,外挂的function是:1.从SQL Server 2005数据库读取数据2.对其进行一些操作3.在工作表上显示它,并适当地格式化 慢位是工作表上的显示。 我很难为什么它会在一台较新的机器上变慢。只是为了让自己感到困惑,我尝试了一个虚拟机(VMware Workstation v6.5),内存为256MB,1个CPU,运行XP,只有Office 2003安装在上面,而且比新的笔记本电脑快得多。 总而言之,一个Excel Addin可以在一个低规格的虚拟机上快速执行,而在一台旧的笔记本电脑上执行,而在一台新的规格的笔记本电脑上执行速度会更慢。 任何build议将感激地收到? 非常感谢 缺口 编辑: 好吧,我已经检查过打印机驱动程序,它们是一样的…我检查了碎片级别,如果有的话,速度更快的机器比较慢的碎片更less。 我正在看事件设置

Excel自定义任务窗格不显示

我在一个excel VSTO插件中显示一个自定义的任务窗格,我正在构build它,并显示为: var ctrl = new CellTaskPane(); var pane = CustomTaskPanes.Add(ctrl, "Custom Sheet"); pane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight; pane.DockPositionRestrict = Office.MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoChange; pane.Visible = true; 这是在ThisAddin.cs文件中完成的,它在我的机器上工作得很好,都在debugging会话和通过点击一次安装程序安装的插件中​​。 但是,将加载项安装到同事的机器上certificate是麻烦的。 加载项正在运行,上下文菜单/function区正常工作,但窗格只是拒绝显示。 在function区上有一个切换button,可以切换窗格上的Visible属性,甚至可以单击该button不会强制窗格显示。 任何帮助,将不胜感激,谷歌certificate这一点是无用的。 谢谢。 我应该提到, CellTaskPane只是一个UserControl按照MSDN上的文档: http : //msdn.microsoft.com/en-us/library/aa942846.aspx

如何访问ThisAddin.cs文件中的方法

我已经在C#中创build了一个Excel Addin项目。 现在解决scheme包含一个ThisAddin.cs文件,它有一个ThisAddin类。 后来我添加了一个名为Form的项目到相同的解决scheme。 在窗体中,当我点击一个button,为该button单击事件我想调用ThisAddin.cs文件内的方法。 namespace ExcelAddIn { public partial class ThisAddIn { public void RefreshExcelData() { } } } 现在在MyForm.cs中,当试图为ThisAddin类创build一个对象时,会出现一个编译错误,即Thisaddin类没有一个构造函数需要0个参数。 private void btnUploadTestCases_Click(object sender, EventArgs e) { ThisAddIn objrefresh = new ThisAddin(); } 我在这里错过了什么?

VSTO Excel加载项与Visual Studio Express

我想使用Visual Studio C#2010 Express为MS Excel创build一个加载项(一个精确的function区)。 我在这里和这里以及其他地方search了解它。 但是,当我想创build一个新的项目,我没有看到任何模板描述,我甚至没有看到办公室选项卡。 是因为我使用Express版吗? 我认为不应该。 因为在这个官方的比较中,他们说所有版本都有办公室的发展能力。 我能做些什么来开发这个加载项?

获得Excel范围的行的最快方法

在VSTO C#项目中,我想从一组行索引中获取一系列行。 行索引可以是例如“7,8,9,12,14”。 然后我想要范围“7:9,12,14”行。 我现在这样做: Range rng1 = sheet.get_Range("A7:A9,A12,A14", Type.Missing); rng1 = rng1.EntireRow; 但是由于范围规范中的string处理,效率有点低。 sheet.Rows["7:9"] 作品,但我不能给这个 sheet.Rows["7:9,12,14"] // Fails

如何使用C#获取Excel工作表中当前或集中的单元格值

请帮助我通过一个C#代码,在VSTO excel无论我select一个单元格各自的专栏聚焦。 我需要获得Excel值的工作表上的列值(哪一列)和行值(哪一行否)我集中。 请帮助我通过代码得到相同的。 而且我想学习使用C#的VSTO Excel。 build议我一些好的电子书免费下载和任何相同的网页链接。 如何获得专注或当前单元格的VSTO excel列值使用C#

Excel从两个不同的AppDomain调用.NET自动化服务器?

我有一个Excel插件(用C#编写),它是一个静态variables,位于单例数据caching的核心: static DataCache _instance; 这是通过三种不同的代码path访问的: VSTO ribbon-bar上的事件处理程序将初始化实例,并将其读取以在辅助对话框中显示 RTD服务器(声明为[ComVisible]并实现IRtdServer接口的类)使用RTD公式的数据 一组自动化调用(在声明为[ComVisible]的另一个类中实现)也可以对数据进行操作。 这些是通过在Excel工作表上的button被点击时调用的VBA代码调用的。 编辑(#3): 根据这些代码path被首先调用的顺序,我发现我的代码在两个独立的AppDomain中运行。 来自function区事件处理程序的所有访问都发生在名为“MyPlugIn.vsto”的AppDomain中。 如果这是对我的COM对象的第一次访问,那么所有的后续调用(包括RTD调用)都发生在同一个AppDomain中。 但是,如果第一次访问是通过RTD接口进行的,则该调用和所有后续的RTD调用都发生在名为“DefaultDomain”的AppDomain中。 (使用embedded式RTD公式加载保存的文档时会发生这种情况。)通过工具栏初始化和操作DataCache的后续调用仍然出现在“MyPlugIn.vsto”AppDomain中。 这意味着RTD公式总是像DataCache未初始化一样运行(因为在一个AppDomain中设置的静态variables在其他AppDomain中保持未初始化)。 看来,VSTO初始化时,Excel或VSTO正在创build一个AppDomain。 在此初始化之前通过COM互操作创build的对象位于默认AppDomain中,而之后创build的对象位于VSTO AppDomain中。 我如何确保使用相同的DataCache实例,而不pipe在哪个AppDomain中创build了我的RTD服务器对象?

我的Excel 2010添加仅在打开空白工作簿时显示。 打开现有文档时不会显示

我们已经做了一个Excel的补充,安装正确,只会显示从主图标(或空白工作簿)打开Excel时。 打开任何现有的保存的Excel文档时,它不会显示在工具栏上。 我已经确定,当打开一个现有的文档,在文件 – >选项 – >添加,它是正确的在COM添join选中。 对于我们使用我们的join,我们必须打开一个空白的工作簿,并拖动我们现有的文件到空白的工作簿。 任何人都不知道为什么它只会出现在空白工作簿的function区而不是现有的.xlsx文件? 我甚至在打开一个空白工作簿的时候运行了一个testing,确认添加的function是在function区上,把一些文本放在一个单元格中,保存到桌面上,closures它,然后重新打开。 然后它不显示。 这个添加是用VS2010做的。 这是来自“ThisAddIn.cs”的代码 public partial class ThisAddIn { private void ThisAddIn_Startup(object sender, System.EventArgs e) { } private void ThisAddIn_Shutdown(object sender, System.EventArgs e) { } #region VSTO generated code /// <summary> /// Required method for Designer support – do not modify /// the contents of this […]

Excel中的“想要保存更改”对话框后无法捕获

在Word VSTO中,我们有一个DocumentBeforeSave事件,它在“想要保存您的更改”对话框后被调用,我可以轻松取消标准的保存对话框并显示我自己的。 但是在Excel中,VSTO WorkbookBeforeSave是在保存对话框closures后调用的,它使得我自己的保存对话框在内置之后显示。 我可以使用WorkbookBeforeClose事件,但是我应该显示自己的“想要保存您的更改”对话框,并且自动保存function在按“不保存”时也不起作用。 有没有办法在Excel中的“想要保存更改”对话框后立即调用我的代码,以防止内置的“保存”对话框或以某种方式告诉Excel创build自动保存点(使用我自己的“想要保存更改”对话)当我按“不保存”?