Tag: vsto

打开位于插件文件夹中的XML文件

在VSTO Excel插件中的代码是: Dim XMLDoc As XElement = XElement.Load("XMLFile1.xml") (“ 找不到文件”C:\ Users \ doug \ Documents \ XMLFile1.xml “)生成一个FileNotFound错误。它正在My Documents文件夹中查找,但是该XML文件位于VS Projects文件夹中项目。 我已经将XML文件的“复制到输出目录”属性设置为“始终复制”。 当我更改代码以包含代码工作的XML文件的完整path时。 另外,如果我将上面的代码包含在Windows控制台或其他types的项目中,它将正确运行。 我只是在Excel地址中得到它。 以上是VSTO 2008 / Excel 2003和VSTO 2010 / Excel 2010的情况。

C#Excel将数据从CSV导入Excel

如何使用C#从CSV文件导入Excel中的数据? 实际上,我想要达到的目标与我们在Excel中所做的相似,您可以进入“ 数据”选项卡,然后select“ 从文本”选项,然后使用“ 文本到列”选项并selectCSV,并执行魔术和所有这些操作。 我想自动化它。 如果你能把我带到正确的方向,我会非常感激。 编辑:我想我没有解释得很好。 我想要做的是类似的东西 Excel.Application excelApp; Excel.Workbook excelWorkbook; // open excel excelApp = new Excel.Application(); // something like excelWorkbook.ImportFromTextFile(); // is what I need 我想将这些数据导入到Excel中,而不是我自己的应用程序。 据我所知,我不认为我必须自己parsingCSV,然后将它们插入到Excel中。 Excel为我们做 。 我只需要知道如何自动化这个过程。

如果有VBAmacros,Excel VSTO将无法加载

我有一个用Visual Studio Tools for Office(VSTO)2005开发的excel XLS。大部分代码都是在C#VSTO中,但是也有一个VBAmacros来实现一个工作表函数。 我并不想让VBA和C#彼此交谈,或者类似的事情。 这只是一个工作表函数。 但在Excel 2007中 – 如果用户禁用了macros,那么VBA将阻止VSTO运行。 (错误消息:“定制程序集无法find或无法加载”)如果我删除了VBA,然后VSTO加载罚款。 但是VBAmacros并不重要,所以我不想中止加载整个VSTO表。 即使macros被closures,其余的function也应该工作。 有什么办法可以强制Excel继续加载VSTO,即使VBA被禁用?

在VSTO负载上保留剪贴板

我已经写了一个小的应用程序作为testing,看看什么Excel VSTOs的能力。 但是,我遇到了一个问题。 当我启动Excel时,剪贴板被清除。 我已经通过谷歌追溯这是一个加载项(特别是COM加载项)的问题,当不正确初始化将自动清除剪贴板。 不幸的是,我不知道如何保存在VSTO剪贴板和谷歌没有太大的帮助。 我不会调用任何明显清除剪贴板的函数。 ThisAddin函数中唯一的一个是从某些属性读取并设置一些标志的if / else块。 我仔细考虑过将剪贴板上的数据复制到某个对象的想法,然后只是replace这个,但这似乎很hacky,可能无法正常工作。 任何人都可以在Excel启动时如何/为什么我的VSTO清除剪贴板,以及如何补救? 编辑: 在追踪更深入之后,我错误地认为这是我的人testing加载项。 我发现这是Team Add-In或Adobe Contribute。 鉴于Adobe的这些事情的logging,我会继续说,这可能是贡献加载项。 感谢大家的回复。 这将教会我如何使用Excel的非香草安装VSTO练习。 我将把这个话题保持开放,以便更多的人可以为VSTO Excel加载项(或任何用于办公套件的加载项)在开始时清除剪贴板的可能原因做出贡献。

Office Addin – 以编程方式导入* .exportedUI设置文件

是否有可能在Addin启动时导入现有的*.exportedUI文件?

需要在excel主窗口(准任务窗格)上放置一个浮动的非模态forms,

您好我需要通过在Excel主窗口上浮动一个无模式的表单模拟一个任务窗格。 这个要求的原因是我需要为我的Excel 2003加载项具有任务窗格function,但不能使用以文档为中心的模型。 任何人都可以build议什么是最好的方式来做到这一点? 无模式窗体需要检测主窗口大小调整事件,并相应地调整自身大小,还需要始终将自己定位在窗口底部(类似于对接窗格)。

在单元格公式中调用在Excel 2007中用C#编写的方法

我正在使用Excel 2007.我有C#代码写在一个单独的二进制文件。 代码在类上使用静态类和静态方法。 我有一个在我的VSTO Excel工作表项目中的DLL的引用。 我需要添加或修改什么才能使其工作? 我的C#代码如下所示: using System; using System.Collections.Generic; using Microsoft.Office.Interop.Excel; using System.Runtime.InteropServices; namespace FooStatistics { [ComVisible(true)] public static class Statistics { public static int Count(Range range) { return range.Count; } 我希望能够把一个公式放入一个如下所示的Excel单元格中: =FooStatistic.Statistic.Count(A1:A10) pipe他呢。 我已经看到了这一点,但它似乎是在Excel 2003中的非静态类。我不能相信现在集成是不是更好。 我已经看了很多关于这个StackOverflow的问题。 他们似乎没有提供本地整合(许多人说,“使用X开源库”),不幸的是,很多不被OP接受。 我不是在寻找,“把它变成一个COM对象,并从VBA调用它”。 所以我在找: Excel 2007 代码在C#DLL中 从Excel单元格调用UDF 本地整合 所以这里是另一个StackOverflow链接 ,其中两个响应者说: 据我所知,你不能直接在VSTO中创buildUDF。 VSTO不支持创buildExcel UDF。 自动化插件可以在.Net中创build,似乎是微软认可的方式。 这是一个从2009年6月的问题。这是真的 – […]

如何将菜单项添加到Excel 2010单元格上下文菜单 – 旧代码不起作用

我已经尝试了3个不同的代码示例,它们都失败了。 以下是MSFT员工的代码( 如何显示范围内的上下文菜单 ),另外两个样本的代码几乎完全相同: private void ThisAddIn_Startup(object sender, System.EventArgs e) { CommandBar cellbar = this.Application.CommandBars["Cell"]; CommandBarButton button = (CommandBarButton) cellbar.FindControl(MsoControlType.msoControlButton, 0, "MYRIGHTCLICKMENU", Missing.Value, Missing.Value); if (button == null) { // add the button button = (CommandBarButton) cellbar.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, cellbar.Controls.Count, true); button.Caption = "Refresh"; button.BeginGroup = true; button.Tag = "MYRIGHTCLICKMENU"; button.Click += new _CommandBarButtonEvents_ClickEventHandler(MyButton_Click); } […]

如何使用C#在Excel范围内添加边框?

有人可以告诉我如何添加另一种颜色的细胞范围外的边界? 理想情况下,我希望能够用一种方法来做到这一点,我将不得不多次这样做。 search后,我发现两个方法,显然会做到这一点 – BorderAround和BorderAround2 。 我想我的第一个问题是这两种方法有什么区别? 我试过使用这些每个只有BorderAround2被识别? 无论如何,`BorderAround2'几乎做我想要的。 我使用了下面这行代码,它在范围的外面放置了一个边框,但它是黑色的,而不是红色的: ws.get_Range("B2", "E3").BorderAround2(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlThick, Excel.XlColorIndex.xlColorIndexNone, Color.FromArgb(255, 0, 0), Type.Missing); 此方法的MSDN文档指出: 您必须指定ColorIndex或Color,但不能同时指定。 我怎么去做这个? 如果我将ColourIndex参数设置为ColourIndex ,或者将其完全Type.Missing或错过,则会产生错误。 任何帮助,将不胜感激。 最后,我要指出的是,我在这里find了一个解决scheme, 在这里你分别设置了不同的边缘,但是正如我所说的,我希望使用单一的方法做这个,因为它必须重复多次。

拖放到Excel VSTO中的自定义任务窗格

阿尔,我卡住了! 我正在写一个Excel加载项,打开一个自定义任务窗格(这是一个数据分析工具types的东西)。 为了提高工作效率,我希望用户能够将一个对象(如文件或电子邮件附件)拖放到该任务窗格的一部分进行处理,而不必经过一个或多个文件对话框。 问题是,Excel似乎完全覆盖了自定义任务窗格及其包含的控件的拖放属性,以便在将任务文件拖放到任务窗格上时,Excel只会尝试将其作为电子表格打开(并成功这是一个支持的文件types),我的DragDrop事件从不会触发。 有什么办法让Excel停止这样做,所以拖放事件被发送到任务窗格?