Tag: vsto

VSTO:如何强制Visual Studio运行Excel的新实例

Visual Studio需要运行EXCEL.EXE的实例,以便在Visual Studio中以devise模式编辑Excel工作表。 不幸的是,如果它发现一个已经运行,它将使用那个。 如果该实例碰巧正在工作,或者正在运行一个macros,macros有时会崩溃。 如果由于某种原因我需要杀死它(我经常这样做),那么VS显然也会停止工作。 解决方法是closures所有EXCEL.EXE实例,运行VS,打开VSTO项目,然后VSfind没有正在运行的Excel实例并运行它自己的,然后我可以重新打开我以前的实例。 但是这并不总是可能的,所以我想find一种让VS每次都能打开一个新实例的方法。

以加载的forms获取怪异的字符

我们的Excel插件项目包含了几个WinForms,除了一个之外,它在所有的用户工作站上完美地显示。 在这个特定的工作站上,WinForms上的标签文本变成了难以理解的字符(见截图)。 奇怪的是,任何文本框控件中的文本都可以。 用户的区域设置是en-US,该工作站上没有其他语言环境。 我们排除了区域设置和损坏的字体。 任何想法可能是什么原因造成的? 我们应该查看哪些forms的属性或项目设置,哪些可以帮助我们?

获取exceptionsystem.AppDomainUnloadedexception:正在运行线程的应用程序域已被卸载

我在C#vsto(excel)上工作,我创build了Excel 2007项目安装程序。 项目在Office 2007中工作正常,但是在Office 2010中打开它时,它开始创build问题。 System.AppDomainUnloadedexception: the application domain in which thread was running has been unloaded 有人有什么想法吗? 更新:我刚刚检查了我的代码: private void ThisWorkbook_Startup(object sender, System.EventArgs e) { . . . this.Close(Type.Missing, Type.Missing, Type.Missing); . . } 这是给这个this.close一个例外

Excel Range.Find和维护用户select的查找选项

当使用Excel Interop API自动执行excel时,我可以使用Range.Find方法轻松地进行范围search。 我正在通过查找的LookIn,LookAt,SearchOrder,SearchDirection和MatchCase选项。 如MSDN文档所述,将传入此方法的值保留到用户设置中,所以下次用户打开查找表单时,将会select在Range.Find方法中使用的选项。 在执行程序化查找之前和之后,我需要坚持查找选项的值。 所以我想捕获当前的查找选项,然后执行Range.Find,然后将查找选项设置回search前设置的选项。 但是,我没有看到查找选项是公开的。 任何想法如何得到这些? 我基本上希望检索LookIn,LookAt,SearchOrder,SearchDirection和MatchCase的当前查找选项值。 更新迄今为止我能find的最有趣的事情是,您可以访问Excel应用程序对话框 – 对话框界面 。 所以在这里,我可以访问FormulaFind对话框,该对话框与“查找和replace”对话框略有不同,但可能会导致我正在查找的一些属性。 我没有任何运气,但也许有一种方法可以通过这种forms使用reflection来访问属性。 我会继续尝试这个。 // xlDialogFormulaFind, xlDialogFormulaReplace Excel.Dialog dialog = this.Application.Dialogs.Item[Excel.XlBuiltInDialog.xlDialogFormulaFind];

VSTO Excel AddIn使用企业库吞吐exception

我有一个使用VS2010创build的VSTO Excel加载项,并使用Enterprise Library 5.0中的exception处理。 它在开发中可以正常工作,但是当我使用click进行部署时,错误被Enterprise Library吞噬了。 我怀疑企业库根本就没有被调用,因为我这样做了: try { //.. } catch (Exception ex) { Globals.ThisAddIn.Application.Cursor = Microsoft.Office.Interop.Excel.XlMousePointer.xlDefault; MessageBox.Show("handle error '" + ex.Message + "' with enterprise Policy"); exManager.HandleException(ex, "Policy"); } 我得到对话框,但没有错误被logging或显示或重新抛出。 有谁知道为什么企业库将无法加载? 我查了一下,他们签了名。

任何人有一个解决scheme与保存和Outlook添加发送错误?

我不知道这是否可以通过编程方式修复,但我有一个Outlook插件下面的问题。 重现: 1) Create a new Outlook add in 2) Add a ribbon to the solution 3) Set the RibbonType to Microsoft.Outlook.Mail.Compose 4) Run the solution 5) Open a workbook in Excel 6) Click File > Save and Send > Send as Attachment > Then send or close the mail 7) Click file Save As […]

寻求build议 – Excel Addin – C#服务

我们目前可以使用具有特定接口的WCF DataService。 该服务基本上提供了基于传递给服务的DataRequest对象所需的数据。 此服务已被其他.net前端使用… 现在我想在Excel中公开这个服务; 这样用户可以通过这个服务直接获取数据。 我知道我需要在Excel中开发某种插件。 在技​​术方面我有什么select。 这个添加将被分发给他们安装的不同的商业用户,并将这个插件包含在excel中并查询他们的数据。 提前致谢

VSTO-从Excel工作簿上的任务栏捕获点击的事件

我正在研究VSTO excel 2007工作簿应用程序并寻找跟踪Excel应用程序点击的事件。 有两种情况: 用户点击任务栏中的excel图标后进入excel。 用户在按下ALT + TAB后进入Excel表格 我努力了 ThisWorkbook_ActivateEvent(); 和 this.Application.WindowActivate 但他们似乎并没有工作。

如何修复由于NativeWindow在Excel VSTO项目中的ThreadAbortException?

在一个针对Office 2007和2010的VSTO项目中,我在ThisAddIn_Shutdown完成后得到一个ThreadAbortException。 我相信这是由我的NativeWindow实现引起的,我在关机中清理它。 我正在使用NativeWindow,以便我的VSTO插件可以有HotKeys,我可以检测哪些键被按下。 这里有一个类似的问题,但我没有使用它的forms,所以我不能使用这个解决scheme。 在这个线程中,问题得到了更好的解释。 您必须在closures之前在主Excel窗口中释放您的子类。 原因是加载程序调用closures响应主Excel窗口closures。 因此,如果您在Excel的主窗口closures之前还没有调用ReleaseHandle,WM_CLOSE将首先被调度到NativeWindow的托pipeWndProc。 这将托pipe代码放在加载器closures代码下面的堆栈中。 所以加载器调用closures并卸载AppDomain,但是堆栈继续放松,并遇到托pipe代码。 由于AppDomain已被卸载,因此抛出了AppDomainUnloadedException,但由于没有可用的处理程序,因此Excel崩溃。 但是我再次不能使用这个解决scheme,因为我没有使用这个解决scheme。 所以据我可以告诉解决办法是在Excelclosures之前清理NativeWindow的东西。 我怎样才能做到这一点? 我发现/想到的唯一的事情就是解决这个Word问题。 这是发送WM_CLOSE消息。 我可以取消一个应用程序退出清理我的本地窗口,并亲自closuresExcel。 但是我不确定Excel(2007/2010)是否知道什么时候closures,这足以取消。

如何检测工作表上是否更改了filter?

在Excel工作簿项目中,我们如何检测某些工作表上的filter是否已更新?