Tag: vsto

如何访问ThisAddIn类之外的VSTO Outlook加载项中的Application属性?

使用新的Outlook VSTO C#项目创建的ThisAddIn类具有一个Application属性,您可以使用该属性来访问Outlook文件夹和项目。 问题是当你在ThisAddIn类中时可以轻松使用它,但是从项目中的其他类中无法轻松访问它。 这是因为它是一个实例属性。 我想找到访问此属性在我的其他类中提供的相同function的最佳方式,因此我提出了两种可能的解决方案,但我不知道哪一种(如果有的话)是好的。 让我们假设我想要获取默认的收件箱文件夹。 在ThisAddIn类里面我会做这样的事情: this.Application.Session.GetDefaultFolder(Outlook.olFolderInbox); 现在如何在这堂课外做同样的事情? 1.静态属性 首先,我可以向ThisAddIn类添加一个静态属性,并将其设置为我想在其他类中公开的值。 public partial class ThisAddIn { public Outlook.Application OutlookApp; void ThisAddIn_Startup(object sender, EventArgs e) { // init static variable value here OutlookApp = this.Application // initialize the rest of addin here } void InternalStartup() { this.Startup += this.ThisAddIn_Startup; } } 这样在我的任何其他类中我都可以这样做: ThisAddIn.OutlookApp.Session.GetDefaultFolder(Outlook.olFolderInbox); 2.创建新的Application对象 我可以做的第二件事是在我使用它之前在我的其他类中初始化Application对象。 […]

在asp.net中创建Excel工作簿

我需要在点击按钮时为用户生成一个excel文件。 我之前使用的是Netoffice ,它在桌面应用程序中运行良好。 但现在我想用asp.net应用程序做同样的事情。 这样我的服务器代码就无法访问客户端的excel副本。 我应该采取什么方法?

用C#编写的COM加载项与自动加载项的可选参数

我正在开发一个COM加载项和Excel自动化加载项库,其核心代码是用C#编写的。 我想为函数设置一个可选参数,我知道这对于C#和VBA,甚至Excel WorksheetFunction都是合法的。 但我发现最终可选参数专门用于COM和自动化加载项,这意味着如果首先运行一个加载项,那么效果很好,但另一个加载项的可选参数将不起作用。 下面请看示例: 在VS 2013解决方案中,我有两个项目:一个名为TestVBA ,另一个名为TestExcel 。 TestVBA用于COM加载项并通过“Excel 2013加载项”构建,并且有两个.cs文件: ThisAddIn.cs 此文件自动生成并稍作修改。 代码是 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Linq; using Excel = Microsoft.Office.Interop.Excel; using Office = Microsoft.Office.Core; using Microsoft.Office.Tools.Excel; namespace TestVBA { public partial class ThisAddIn { private void ThisAddIn_Startup(object sender, System.EventArgs e) { } private void ThisAddIn_Shutdown(object sender, System.EventArgs […]

防止重新调整Windows窗体的大小调整控件

我有一个TableLayoutPanel,它在SplitterPanel中包含动态数量的控件。 用户可能希望调整面板大小以适合这些控件以避免使用滚动条。 这会在容器resize以及容器内的控件上产生抖动。 有时,父容器在resize期间显着落后于鼠标移动(最多3秒滞后)。 是否有任何方法可以防止在父容器resize期间重新绘制控件,例如在resize期间隐藏所有元素或暂停在mousedrag期间发生的resize事件,仅在onMouseUp事件上触发?

如何将Window.Owner设置为Outlook窗口

我有一个outlook插件,弹出一个WPF窗口 有没有办法将WPF的Window.Owner属性设置为Outlook?

如何分配Excel VSTO安装的程序集位置?

我正在创建一个用C#编写的文档级工作簿/模板,并使用VSTO安装程序来部署代码。 安装项目后,我有完整的电子表格function,但是,当我将安装的工作表保存或复制到安装文件夹之外的另一个路径时,我收到以下错误: 具有以下完整细节: Name: From: file:///C:/Users/Kronos/Desktop/ExcelTemplate1.vsto ************** Exception Text ************** System.Deployment.Application.DeploymentDownloadException: Downloading file:///C:/Users/Kronos/Desktop/ExcelTemplate1.vsto did not succeed. —> System.Net.WebException: Could not find file ‘C:\Users\Kronos\Desktop\ExcelTemplate1.vsto’. —> System.Net.WebException: Could not find file ‘C:\Users\Kronos\Desktop\ExcelTemplate1.vsto’. —> System.IO.FileNotFoundException: Could not find file ‘C:\Users\Kronos\Desktop\ExcelTemplate1.vsto’. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, […]

BackgroundWorker在VSTO中不起作用

我有一名背景工作者。 在我调用worker之前,我禁用了一个按钮并使gif可见。 然后我调用runworkerasync方法,它运行正常,直到comleteion。 在’RunWorkerCompleted()’上,我得到一个跨线程错误。 知道为什么吗? private void buttonRun_Click(object sender, EventArgs e) { if (comboBoxFiscalYear.SelectedIndex != -1 && !string.IsNullOrEmpty(textBoxFolderLoc.Text)) { try { u = new UpdateDispositionReports( Convert.ToInt32(comboBoxFiscalYear.SelectedItem.ToString()) , textBoxFolderLoc.Text , Properties.Settings.Default.TemplatePath , Properties.Settings.Default.ConnStr); this.buttonRun.Enabled = false; this.pictureBox1.Visible = true; BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += new DoWorkEventHandler(bw_DoWork); bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted); bw.RunWorkerAsync(); //backgroundWorker1.RunWorkerAsync(); } catch […]

使用VSTO创建UDF而不使用VBA

与此问题类似(但在我的情况下不是VSTO SE),我只想确认在Visual Studio 2005和Excel 2003中使用纯VSTO创建UDF是不可能的 – 所以,绝对清楚,我的问题是: 是否可以使用Visual Studio 2005和VSTO解决方案创建Excel 2003 UDF而无需使用任何VBA或其他技巧? 我知道ManagedXLL,ExcelDNA,Excel4Net等,但暂时不想考虑这些。 谢谢

如何使用VSTO加载项项目轻松创建Excel UDF

我想要做的是使用VSTO的C#“Excel 2007加载项” – 项目类型为Excel创建用户定义函数(UDF)(因为我只想生成一些通用UDF)。 因为我只是想学习基础知识(无论如何在这个阶段),这就是我的代码: using System; using System.Collections.Generic; using System.Text; using System.Xml.Linq; using Excel = Microsoft.Office.Interop.Excel; using Office = Microsoft.Office.Core; using Microsoft.Office.Tools.Excel; using Microsoft.Office.Tools.Excel.Extensions; using System.Runtime.InteropServices; namespace ExcelAddIn1 { public partial class ThisAddIn { private void ThisAddIn_Startup(object sender, System.EventArgs e) {} private void ThisAddIn_Shutdown(object sender, System.EventArgs e) {} //My UDF public static double HeronicCal(int […]

如何在没有Visual Studio的情况下开发Microsoft Office AddIn

我正在尝试使用C#.Net开发MS Office Addin,但我无法访问Visual Studio。 相反,我使用SharpDevelop作为我的IDE,(但我的问题与使用任何其他IDE开发或从命令行编译的任何人同样相关……) 我已经做了一些搜索有关如何开发AddIns的指南,但它们似乎都需要Visual Studio并按照以下步骤操作: 安装互操作程序集 创建一个Visual Studio .Net项目( 我无法做到这一点 ) 扩展VS ThisAddIn模板 我设法做的是: 安装互操作程序集 创建一个C#空的SharpDevelop项目 将GAC引用添加到Microsoft.Office.Interop.Outlook 将COM引用添加到Microsoft Office 12.0对象库 using Outlook = Microsoft.Office.Interop.Outlook;添加该行using Outlook = Microsoft.Office.Interop.Outlook; 和using Office = Microsoft.Office.Core;的行using Office = Microsoft.Office.Core; 看一些示例代码,并意识到它们都是指我没有的VS模板和VSTO库(Microsoft.Office.Tools)。 我从哪里去? 有没有我错过的指南/教程,或者有人可以提供一些指示?