Tag: vsto

如何使用vb.net检测Excel 2003的打印预览窗口?

我需要能够testing如果当前视图是Excel 2003中的打印预览。 有没有在Excel对象模型中简单地访问此属性? (像Word对象模型中的application.printpreview …)。 任何意见将不只是欢迎, 谢谢 朱利安 PS:长话短说,我正在开发一个带有键盘快捷方式的vsto插件,用于我的自定义函数,并且在打印预览时需要禁用此快捷方式。

C#Excel:设置捕获单元格select的代理行为间歇性

我创build了一个接口来定义RangeSelectionTarget,如下所示: public interface IRangeSelectionTarget { void OnRangeSelection(Excel.Range target); } 在另一个类(ExcelController,封装Excel互操作行为)中,我有一个方法将工作表范围select(使用鼠标select单元格)传递给目标: public void SelectCaptureOn(IRangeSelectionTarget target) { _selectionCallback += new SelectionCallback(target.OnRangeSelection); _selectionCallback += new SelectionCallback(SelectionCallback2); int limit = _workbook.Worksheets.Count; for (int i = 1; i <= limit; i++) { Excel.Worksheet worksheet = _workbook.Worksheets.get_Item(i); string worksheetName = worksheet.Name; worksheet.SelectionChange += new Excel.DocEvents_SelectionChangeEventHandler(OnXlSelectionCallback); } } 目标,一个窗体,实现OnRangeSelection()如下,以显示单元格地址: public void OnRangeSelection(Excel.Range […]

C#Exceljoin – 编程添加内存下拉/select列表

我一直在用C#创build一个Excel添加实验。 我想知道是否有可能以编程方式创build列的项目不必在工作表中的下拉列表? 也就是说,我知道可以使用数据validation和单元格范围来完成,但是我不希望用户可以看到下拉列表的项目是可以编辑的。 任何见解/链接援助在这将不胜感激。 谢谢

我怎样才能从我的加载项检查macros的存在/许可?

我可以使用下面的代码从我的加载项中调用一个macros: Application.Run(MACRO_NAME); 其中Application是Microsoft.Office.Interop.Excel.Application一个实例。 我希望能够在调用Run()之前检查macros是否存在(以及是否有权运行它Run() 。 现在我只是把调用放在一个try块中,但是我讨厌使用exception处理来控制程序。 有没有办法看看哪些macros可以运行?

什么是从Excel访问WCF服务的最佳方式?

我想通过Excel(2007或2010)中的VBA函数/macros访问WCF服务。 看起来有很多种可能性,每种都有其特殊的缺陷。 … 微软SOAP工具包 WCF服务绰号 COM Interop VSTO Excel的DNA 任何人都可以build议这样做的最佳方式?

VSTO:Visual Studiodevise人员重复使用运行Excel实例,而不是自行启动

在Visual Studio中创buildVSTO Workbook项目时,VS会创build一个新的Excel(xlsx)文件,并允许您直接从Visual Studio中进行编辑。 Excel工作簿出现在一个新的选项卡中,旁边是任何代码或表单: 为了支持这个,Visual Studio需要在devise时运行一个EXCEL.EXE实例。 问题是,不幸的是,而不是总是运行自己的实例,如果它发现一个已经运行它将使用该实例。 所以如果由于某种原因,我的电脑上已经打开了Excel,Visual Studio将会重用这个实例。 这会导致几个问题:如果Excel正在运行一个长计算,它将冻结Visual Studio; 如果在VS中我打开一个模态Excel窗口(例如单元格或字体属性),它冻结了我现有的Excel窗口(VS之外)。 如果VS崩溃,Excel.exe仍然有一个项目的Excel文件的句柄,但我不能杀了它,因为我在Excel中的其他打开的文件。 最后,如果我碰巧在PC上打开了Excel 2003,并且我的项目使用的是Excel 2007,VS 仍然会尝试使用当前正在运行的2003实例,这会在被要求打开2007文件时感到困惑,请尝试将其转换等等,这导致了一个完整的混乱。 唯一的解决办法是closures所有EXCEL.EXE实例,只有在运行VS之后,打开VSTO项目,VS才会find没有正在运行的excel实例并自己运行,然后我可以重新打开我之前打开的文件在我打开自己的新事例。 这并不总是可能的,但可能是一个真正的痛苦,所以我想find一种方法让VS每次都打开自己的个人新实例。

COM加载项的Excel安装程序问题

我已经在MS Office 2007的Visual Studio 2008中开发了Excel加载项。我的客户现在也希望这个加载项能够在Office 2010上运行。 所以,我使用Visual Studio 2010来实现这个要求。 Visual Studio 2010会自动将Visual Studio 2008代码转换为Visual Studio 2010.但是对于这个转换的项目,框架3.5保持不变,所以我无法在.Net Framework 4.0(它给出错误)中编译这个转换后的代码。 因此,我将代码保留在3.5框架中,并在Visual Studio 2010中为Office 2010创build了安装程序并进行了安装。 安装成功,但加载项无法加载,因为加载行为总是从3更改为2(错误:加载COM加载项时发生运行时错误)。 所以在网上search后,我通过安装程序在registry中添加了一个条目。 它在Office 2010上工作正常,但在Office 2007上却不工作。尽pipe代码完全一样,但我仍然需要为Office 2007和Office 2010保留两个不同的代码库和两个不同的安装程序。 我想单个代码库和单一的安装程序为我的Excel加载项,应该在办公室2007年以及office 2010工作。任何人都可以帮助我吗? 如果有人能尽早给我一个解决scheme,我会很感激。

在保存Excel时丢失了数据透视表

我将excel转换为Byte [],并将其保存在服务器上。 当我拉回字节[],并从中创build一个Excel。 我的数据在那里,但枢轴结构丢失。 我正在使用C#。

如何从文本参考中获取Worksheet对象?

我有一个不同的工作簿中的工作表的名称。 名称如下所示:'[Book.xlsx] Sheet1'。 我怎样才能从这个名字得到Worksheet对象?

VSTO Excel加载项部署问题使用Click Once和Mage

我有一个VSTO Excel加载项,可以在Visual Studio 2008中成功发布。我想将发布移动到CruiseControl构build服务器上的NANT任务,以便获得unit testing等的所有好处。 我正在通过本地构build和部署到我的机器上的共享来testing部署,所以我知道在NANT中使用的命令。 我可以使用Mage命令行工具成功构build部署和应用程序清单。 当我从networking共享运行应用程序时,安装失败,并提示消息:“ Windows窗体应用程序不支持customHostSpecified属性 ” 我已经查看了各种信息来源,其中大部分build议使用最新版本的法师工具(我使用Windows SDK 7.0a中的法师工具),并确保处理器目标是MSIL。 我也跟着各种MSDN页面和演练,但似乎无法摆脱这个问题。 所以总结一下: 如果从Visual Studio 2008发布,我可以通过ClickOnce进行部署 我可以build立清单,并使用法师CMD工具签署他们 我不能从我的networking共享安装,我得到“ Windows窗体应用程序不支持customHostSpecified属性 ”错误。 我针对Excel 2007和使用.NET Framework 3.5。 该应用程序从networking共享部署,而不是IIS。