Tag: vsto

跟踪添加和删除的工作表

我正在做一个Excel插件,并且遇到了障碍。 我想用Excel工作簿中的工作表来更新combobox。 目前我能用foreach循环做到这一点。 然而,这是有限的,只是在我运行它的时候才拿起加或减的表单。 我的插件看起来俗气的“刷新表”button,我想避免这种情况,如果可能的话。 理想情况下,我可以将工作表对象绑定到combobox,以便在没有我的干预的情况下即时更新。 但是,我的研究发现,它不支持。 我还没有尝试过,因为我不在我的开发电脑前,直到后来,但我几乎积极,因为它不会inheritanceIList它不会作为一个数据源工作。 有没有人做过类似的事情? 我真的很想让这件事情正常工作。 谢谢!

以编程方式启动Excel的“信任中心设置”对话框

我需要用户单击“信任访问VBA项目对象模型”,以便我正在构build的应用程序可以帮助他们将代码导入到VBE。 我可以显示一个消息框或者提供文档告诉他们如何改变设置(如果有的话,还有关于反响的警告)。 但是,这个设置仍然埋在Excel用户界面中5次点击…事实上,即使我不记得在哪里find它。 所以我想要做的是以编程方式为他们打开窗口。 我可能可以使用臭名昭着的SendKeys方法,但我想知道是否有更好的方法… (我看到,实际上可以通过使用VBS脚本来为用户设置对用户的VBA项目对象模型的访问权限,以便在目标Office应用程序没有按照此MSDN文章运行时更改该键值,但是我更愿意用户手动启用此选项或select不)。 编辑:VBA 或 VSTO解决scheme是好的,或任何你能想到的。

保存VSTO工作簿的非VSTO副本

我想从一个.NET 3.5 Excel 2007 VSTO工作簿保存一个ListObject到一个新工作表(完成),并保存新工作表(没有工作簿需要VSTO自定义文件(!!!!!)) 。 有没有人有这个运气? 我获得成功的唯一方法就是保存为一个CSV文件,但在这种情况下,这是不可接受的。 我宁愿不保存到一个CSV只是为了复制回XLS文件。 worksheet.SaveAs(saveDialog.FileName,Excel.XlFileFormat.xlOpenXMLWorkbook)

使用VSTO访问C#类文件中的Excel工作表

我创build了一个使用VSTO模板(VS2010,Excel2007)的Excel插件。 在解决scheme资源pipe理器中,我有一个名为Excel的组,并在其下有一个名为ExcelAddIn.cs的文件。 这可以通过代码来访问活动工作表 public partial class MyAddIn { Excel.Worksheet activeWorksheet = (Excel.Worksheet)Application.Activesheet; Excel.Range firstRow = activeWorksheet.get_Range("A1",missing); } 等这个代码工作正常,即。 我可以在Excel模型。 不过,我不想将所有的处理代码放在这个类文件中,而是想在另一个类文件中处理Excel工作表数据。 我已经创build了这个文件,但是无法使用上面的代码,例如。 我似乎无法从这个文件访问Excel模型。 我已经复制了“使用Microsoft.Office.Tools.Excel”引用,但放入一行: Excel.Worksheet activeWorksheet = (Excel.Worksheet)Application.Activesheet; 给我一个'名称'应用程序'在当前上下文中不存在'的错误。 任何想法,我需要做什么参考/更改从这个单独的类文件获取Excel模型? 顺便说一句。 工作的文件是指第一个代码行的“Excel.Application”对象,第二个不起作用的单独文件是指“Microsoft.Office.Interop.Excel”对象。 谢谢皮特 ====find答案====从你添加的其他类获取你的工作表的方式是简单的访问 Globals.ThisAddIn.Application.ActiveSheet; 例如: Excel.Worksheet ws = (Excel.Worksheet)Globals.ThisAddin.Application.ActiveSheet; 其中“ThisAddIn”是向导创build的类的名称(您可能已将其重命名)。 因此,使用Globals来获取ThisAddin代码之外的Excel对象。

如何使用VSTO在Excel中获取工作表的代码名称

我这样做: if (Excel._Application.ActiveWorkbook != null) { List<WorksheetKeyValue> sheets = new List<WorksheetKeyValue>(); foreach (object ws in ExcelApp.ActiveWorkbook.Worksheets) { string strCodeName = ws.CodeName } } 但strCodeName是一个空string,当它应该是Sheet1,Sheet2,…,SheetN像在VBA中。 谢谢

VSTO Excel:如何使用ListObject进行自定义列映射?

我有一个这样的模型: public class Instrument { public string Id { get; set; } public string Name { get; set; } // About 100 other properties } 我从Entity Framework EDM中检索Instrument实例。 现在我想要做的是能够进行自定义映射,将此数据集绑定到Excel ListObject。 默认情况下,ListObject将显示Excel工作表中的每一列,但我只想显示一些属性和特定的顺序。 ExcelTools.ListObject instrumentsTable = this.Controls.AddListObject(tableStart, tableName); instrumentsTable.DataSource = myEDM.Instruments; // Custom mapping code… 我试图使用SetDataBinding方法,但它抛出了一个数据绑定exception。 有人能帮我实现吗? 谢谢。

跳过Excel列中的空行

在用户selectExcel中的整个列的情况下,我必须对列中的单元格进行操作,如何高效地忽略空行。 整个专栏有超过100万的细胞! 请帮忙! 范围来自 var range = Application.ActiveWindow.RangeSelection; 最终我想用一些东西来做 for (int i = 0; i < range.Rows.Count; i++) 其中Rows.Count应该是非空行数…也许有一种方法来定位最后一个单元格的东西呢?

excel VSTO插件可以兼容excel 2007和2010吗?

是否有可能使用VSTO开发一个可以部署到Excel 2007和2010的Excel插件? 任何链接到这个主题的详细资源也将不胜感激 – 我似乎无法find谷歌专门解决这个问题的任何东西。 我正在开发一个使用Visual Studio 2010的C#excel插件。

VSTO Excel Com添加function区不加载

我正在使用VS 2010开发Excel 2007 COM加载项。 因为它是VS 2010 Office Project,所以它的目标是.NET 4.0客户端框架。 我添加了一个名为MyRibbon的新function区(XML)项目,因此默认文件名为ThisAddIn.cs,MyRibbon.cs和MyRibbon.xml。 一切都很好。 它以.vsto扩展名发布。 当我安装加载项(通过提供的Setup.exe)时,它将在Excel中安装,并在COM加载项列表中进行检查。 它也被指定在启动时加载。 但是,首先打开Excel或打开Excel文件不会将该选项卡添加到function区。 我可以告诉加载项加载,因为它将“COM加载项加载”在第一个工作表的第一个单元格中。 看起来好像CreateRibbonExtensibilityObject()没有被调用。 有没有人有任何想法,或可以告诉我如何显示任何可能被埋葬的错误消息? 下面的细节。 我已经添加了CreateRibbonExtensibilityObject()的覆盖: protected override Office.IRibbonExtensibility CreateRibbonExtensibilityObject() { return new MyRibbon(); } MyRibbon.xml看起来像这样,一个选项卡内的三个button: <?xml version="1.0" encoding="UTF-8"?> <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Ribbon_Load"> <ribbon> <tabs> <tab id="TabAdvComTracking" idMso="TabAdvComTrackingMso" label="Adv.com Tracking"> <group id="groupPrepare" label="Prepare"> <button id="GenerateNewWorkbook" idMso="GenerateNewWorkbookMso" enabled="1" size="large" onAction="GenNewWorkbook" label="Make" /> <separator […]

在VSTO项目中从Excel工作簿中读取五十万条logging

我正在尝试使用VSTO在Excel中创build一个模拟工具,并创build一个Visual Studio 2010 Office工作簿项目。 本工作手册中的工作表之一将包含大约50万条logging。 理想情况下,我想阅读所有logging在模拟中使用它们,然后输出一些统计数据。 到目前为止,当我试图获得整个范围,然后一个一个去掉它的单元格时,我有OutOfMemoryexception。 有没有人有其他的想法,我怎么能读取所有的数据或build议呢? 这是我的代码: Excel.Range range = Globals.shData.Range["A2:AX500000"]; Array values = (Array)range.Cells.Value;