Tag: vsto

在VSTO Excel中,如何检测单元格中的数据?

我想知道是否有人知道如何快速检测给定的工作表中是否有数据,而不需要实际遍历工作表中的所有行/列来解决这个问题。 我正在编写一个导入程序,将数据直接导入活动工作表(如果尚未修改),或者创build新的工作表并导入到其中。 我目前正在循环浏览整个表格,而且我的导入有一些明显的滞后时间。 我将不胜感激任何帮助。 谢谢!

如何将操作推送到Excel撤消堆栈?

我正在构build一个处理多个单元格值的VSTO Excel加载项。 我想允许用户通过标准的Excelfunction撤消和重做由加载项创build的更改。 我宁愿避免使用VBA。 这可能吗? 如果是这样,怎么样? 另一个问题:是否可以检查现有的撤销/重做堆栈?

如何在Visual Studio 2010创build的Excel加载项中执行.Onkey事件?

我正在使用Visual Studio 2010创build一个Excel加载项。我想在用户单击一组键时运行一些代码。 这是我得到的代码 Public Class CC Private Sub ThisAddIn_Startup() Handles Me.Startup EnableShortCut() End Sub Sub A1() MsgBox "A1" End Sub Sub A2() MsgBox "A2" End Sub Sub A3() MsgBox "A3" End Sub Public Sub EnableShortCut() With Application .OnKey "+^{U}", "A1" 'action A1 should be performed when user clicks Ctrl + Shift + U .OnKey […]

Excel VSTO如何工作?

Excel VSTO如何工作? 如果我在Visual Studio 2005中创build一个Excel工作簿解决scheme,那么我可以愉快地代码完全访问Excel对象模型,甚至将Excel工作表视为devise表面。 当我构build解决scheme时,我得到一个.XLS文件和一个.DLL (包含我的C#代码)。 我现在可以通过双击.XLS来启动Excel工作表,我的工作表可以使用我所有的C#代码以及我在工作表上放置的任何控件。 工作表如何引用.DLL ? Excel工作簿/工作表的哪一部分告诉它需要启动CLR并托pipe我的程序集?

从Excel单元格中的超链接文本中提取URL

我在excel中有一个超链接文本,所以基本上是一堆名字,但是当我点击一个时,它会把我带到默认浏览器中的一些URL。 所以我从我的程序中的excel表中提取文本,但是我从这些超链接单元格中提取的值是string里面的值,当我想要将string链接到的URL在excel文件中。 所以我想有两种方法可以做到这一点。 我可以将excel文件中的所有超链接文本转换为相应的URL,或者我可以使用C#以某种方式从单元格中提取URL值,而不是文本。 我不知道如何做这些事情,但任何帮助将不胜感激。 到目前为止的C#代码: Excel.ApplicationClass excelApp = new Excel.ApplicationClass(); //excelApp.Visible = true; Excel.Workbook excelWorkbook = excelApp.Workbooks.Open("C:\\Users\\use\\Desktop\\list.xls", 0, false, 5, "", "",false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); Excel.Sheets excelSheets = excelWorkbook.Worksheets; string currentSheet = "Sheet1"; Excel.Worksheet xlws = (Excel.Worksheet)excelSheets.get_Item(currentSheet); string myString = ((Excel.Range)xlws.Cells[2, 1]).Value.ToString(); 至于excel文件,它只是超链接的一长串名字。 例如单元格A2将包含文本: 美味的cookies食谱 我想提取string: http://allrecipes.com//Recipes/desserts/cookies/Main.aspx

快速的方法来获取Excel范围为C#中的文本或单元格格式的数组?

数组操作比VSTO中的范围操作快,所以目前我正在使用 object[,] RangeValues = wsh.get_Range("A1:" + lastCell.Address).Value2; 效果相当不错。 可悲的是,我有一些不一致的数据。 有时候有0.45 ,有时候是0.45% ,当然以后我会看到它是0.0045代码。 可悲的是,从“商业”的angular度来看,这两个值都意味着0.45 。 我不能强制一致性,文件来自我没有任何权限的各种来源。 这是我需要处理的事情。 当然,方法是查看格式或显示文本,看看是否有%符号。 如果有的话,我只需要将值乘以100.可悲的是,如果我尝试: object[,] RangeValues = wsh.get_Range("A1:" + lastCell.Address).Text; 我得到消息,不能将DBNull转换为object[,] 。 那么是否有任何方法可以让我一次加载文本或格式,而不需要在mu循环的每个步骤都完成代码< – >工作表边界?

错误:不能selectDatePicker上的浮动VSTO加载项之外的date

这里logging与微软的问题 – Repro可以下载: https : //connect.microsoft.com/VisualStudio/feedback/details/741454/value-change-event-doesnt-fire-for-datetimepicker-controls-used-在-VSTO-插件 如果将DateTimePicker放入Excel VSTO浮动加载项中,并且在日历下拉时将其放置,则它位于加载项边缘之外,请参阅此处: select绿色环绕的任何date如预期,但点击任何红色的date,它只是closures日历下拉,并没有设置date! 有谁知道我可以解决这个问题? 编辑 这个SO用户遇到了使用WPF的问题: VSTO WPF ContextMenu.MenuItem在没有提出的TaskPane之外单击 这个问题的答案表明这个问题被报告连接了一段时间,但仍然没有与VSTO 4.0 SP1的解决scheme: https : //connect.microsoft.com/VisualStudio/feedback/details/432998/excel-2007-vsto-custom-任务窗格与- WPF的上下文菜单具有焦点,问题 其中一个解决方法是使用DispatcherFrame来抽取消息并为菜单订阅GotFocusEvent和LostFocusEvent。 http://blogs.msdn.com/b/vsod/archive/2009/12/16/excel-2007-wpf-events-are-not-fired-for-items-that-overlap-excel-ui-for- wpf-context-menus.aspx但是这是所有菜单的WPF代码不是Winform DateTimePicker的解决scheme。 Microsoft Connect Repro: 新build项目> Excel 2010加载项 private void ThisAddIn_Startup(object sender, System.EventArgs e) { //setup custom taskpane MyTaskView = new TaskPaneView(); MyTaskView.currentInstance = Globals.ThisAddIn.Application; MyTaskPane = this.CustomTaskPanes.Add(MyTaskView, "MyTaskView"); MyTaskPane.DockPosition = […]

VSTO:将元数据附加到Excel中的单元格?

我正在使用VSTO创buildExcel加载项。 这个插件检索并显示来自sql-server的大量数据。 这很好,但后来我打算访问Excel中的一些数据,并在某些方面进行修改。 我的问题是,我需要一种分类我想修改的单元格的方法。 有没有什么办法可以将元数据添加到单元格中,以了解它是否应该修改的单元格? 例如,添加一个属性到单元格,例如“editable_cell”,并做一些像Excel.FindCellsWithAttribute(“editable_cell”)来寻找所需的单元格? 谢谢! /古斯塔夫

使用工作表作为数据源的VSTO Excel的简单示例

我认为我遇到了“最简单的答案是最难find的答案”,而且我没有遇到任何直接向我提供的search。 这是针对现有VSTO(C#)项目中的Excel 2010和VS 2010 。 我有一个Excel工作表,其中包含我想用作DataGridView的源的4列数据。 有人可以提供C#代码片断(1)从特定的工作表中获取数据并用它填充自定义对象吗? (2)将对象(如IEnumerable列表)绑定到Datagridview;(3)更新和删除function的一些片段,这些function将是网格固有的并反馈到源工作表。 我知道我在这里要求很多,但是这么多的VSTO信息似乎是分离的,并不总是很容易find。 谢谢!

以编程方式更改Excel工作表的行高

我怎样才能改变我的EXCEL表单中所有非空行的行高? 在此先感谢,瓦特。