Tag: vsto

VSTO Excel:触发自动备份

我有一个相当参与的Excel加载项,开始展示一些错误后部署。 这并不出乎意料,但是其中的一个bug被certificate确实难以复制(因此也无法解决),并且确实会locking应用程序实例,从而导致数据丢失。 所以我想在任何可能会导致应用程序崩溃的函数运行之前触发一个自动备份。 当然,我会修复所有的错误,当然,这是非常棘手的,所以我期望在此期间使用AutoRecover作为权宜之计。 现在,VSTO公开了控制打开文档的自动备份的自动恢复对象,但是它可以让您执行的操作是启用/禁用自动恢复,控制备份的存储位置,以及在整个分钟内设置备份间隔(最小值为一分钟。 ) 那么是否有其他方式来触发备份事件呢?

VSTO VB.NET Excel图表,字幕为图表 – 如何从代码访问图表文本框?

我在Excel中有一个图表,我想使用一个字幕。 图表对象上没有SubTitle属性,所以我查看了Excel用户界面,发现只能使用文本框创build子标题。 文本框看起来像它与图表关联,而不是工作表,所以我如何从代码访问该文本框? 谢谢…

拦截Excel打开文件

有没有办法通过COM插件拦截或覆盖Microsoft Excel的文件打开命令? 我想在Excel尝试打开工作簿之前处理文件,所以Application_WorkbookOpen太晚了。 理想情况下,它也应该在Excel文件被双击时触发。

如何在使用Windows安装程序安装新版本之前正确卸载以前的Excel 2010加载项?

在我的设置项目中,我更新了Version属性,比如从1.0.0到1.0.1 (对于新产品代码也是),然后将RemovePreviousVersions设置为true。 然后我重build了安装项目。 安装没问题,但是当我打开Excel的时候发生了一件有趣的事情。 以前的版本不知何故被删除,仍然显示在function区栏上。 显然安装程序没有正常工作。 我不确定是否错过了某些东西,或者在安装项目中设置了错误的东西。 我曾经想过改变Version & RemovePreviousVersions就足够了。 也许我错了。 那么我还有什么要做的呢? 任何人都可以给我一些指针? 美东时间: 还有一件事要添加在这里:我不认为我重新构build安装程序时更改程序集版本或文件版本。 我应该更新哪一个? 文件一或大会之一或两者? 如果我只是保持原来的版本不变,这是否重要?

我的自定义Outlook加载项导致Excel保存对话框隐藏自己

我已经创build了一个Outlook加载项,它将一个button添加到一个新的电子邮件窗口的function区,但是这会导致一个问题。 这是发生了什么事情: 用户有Outlook打开。 用户打开Excel。 用户通过文件 – >保存并发送 – >作为附件发送Excel文件给别人 用户对文档进行更改 用户尝试closures文档 这是当Outlook提示用户保存该文件,但对话框隐藏在Excel窗口后面,用户无法进入它,而不做一些恶意。 我的Outlook加载项还有许多其他的function,但是我已经把它固定到我创build的Ribbon.cs文件中,以便将button添加到新的电子邮件窗口。 当我从Micorosft.Outlook.Mail.Compose更改OfficeRibbon对象的RibbonType属性为空,保存对话框显示为它应该。 当我将其更改回“撰写”时,它会再次隐藏对话框。 有谁知道有什么办法呢? 我已经确认这发生在项目是Outlook 2007加载项或Outlook 2010加载项时。 提前致谢。

在VSTO中应用百分比格式 – 在幕后乘以100

我有一段代码根据需求来格式化单元格: Range.Font.Italic = Microsoft.Office.Core.MsoTriState.msoTrue; Range.HorizontalAlignment = XlHAlign.xlHAlignGeneral; Range.NumberFormat = "0.0_%_);(0.0)_%;-_%_)"; 这个代码被调用,然后按下自定义function区上的button。 这与百分比单元格格式相似。 还有一件事,我必须加上单元格值乘以100.例如 单元格值设置为0.15,单击button,数值变为15%。 单元格值设置为2.5,我点击button和值更改为250%等(非常类似于默认的Excel Precentage单元格样式) 但是,如果我做这样的事情: decimal result = Convert.ToDecimal(cell.Value); cell.Value = result * 100; 并且用户多次点击button,每次都会增加值。 有没有办法指定像显示格式的东西,所以实际值保存,只有显示值乘以100? 或者另一种防止价值倍增的方法?

在MSI安装程序中selectEveryone / Just Me选项有一些怪癖

任何人都可以详细解释MSI安装程序中以下两个选项之间的区别是什么, Everyone人和Just Me ? Just Me总比“每个人”都好? 在我这里,出于某种原因,客户端似乎正面临一些与excel插件安装程序的怪癖。 他们只能使用Just Me选项才能正确运行插件。 如果selectEveryone选项,则该插件的某些function将无法正常工作。 顺便说一下,这是一个VSTO excel 2010插件,我使用VS2010安装程序创buildMSI安装程序。

当范围很大时,VSTO 4和C#NamedRange.RefersToRange会抛出Comexception

我正在使用NamedRanges存储我的Excel工作表的“视图”。 所以当用户select一个视图时,它将获取该视图的NamedRange(一组行),然后隐藏这些行。 但是,似乎当NamedRange中的实际范围变得太大,我得到一个COMexception,每当我尝试引用RefersToRange属性 '(ViewRange).RefersToRange'抛出一个exception的types'System.Runtime.InteropServices.COMException' 真正有趣的部分是,我可以在Excel中selectNamedRange,它将突出显示整个范围就好,其他属性如.RefersTo和.RefersToR1C1返回就好。 我通过首先创build所有行的Range来创buildNamedRange,然后将其命名。 这里是当我收到COM错误时,RefersToR1C1返回的内容的一个例子 “= Sheet1中R13:R23,工作表Sheet1 R26:R39,工作表Sheet1 R41的Sheet1 R43:!R46,工作表Sheet1 R48:R49,工作表Sheet1 R51:R72,工作表Sheet1 R76:R78,工作表Sheet1 R83:R84,工作表Sheet1! R137:R147,工作表Sheet1 R150:R163,工作表Sheet1 R165的Sheet1 R167:!R170的Sheet1 R172:R173,工作表Sheet1 R175:R196,工作表Sheet1 R200:R202,工作表Sheet1 R207:R208,工作表Sheet1 R261:R271, !工作表Sheet1 R274:R287,工作表Sheet1 R289的Sheet1 R291:!R294的Sheet1 R296:R297,工作表Sheet1 R299:R320,工作表Sheet1 R324:R326,工作表Sheet1 R331:R332,工作表Sheet1 R385:R395,工作表Sheet1 R398! R411,R413工作表Sheet1,工作表Sheet1 R415:!R418,R420工作表Sheet1!R421,R423工作表Sheet1!R 444的Sheet1 R448:R450,R455工作表Sheet1!R456" 这里是我遇到问题的代码 Excel.Range rngAll = _Blocks.DataRange; rngAll.EntireRow.Hidden = false; Excel.Name ViewRange = Globals.ThisWorkbook.Names.Item(viewName, System.Type.Missing); string addy = […]

在VSTO中排列Range对象

在VSTO 2010 Excel中, Range.Sort方法似乎不适用于我。 这是我的示例代码。 它将数字1到20以相反的顺序放在列A中,然后尝试对它们进行sorting。 Worksheet sheet = Globals.ThisAddIn.Application.ActiveSheet; Enumerable.Range(1, 20).ToList().ForEach(i => sheet.Cells[21 – i, 1] = i); sheet.Columns[1].Sort(); 根据文档 ,没有参数的Sort将按升序sorting。 以防万一我试图指定Order1: XlSortOrder.xlAscending 。 我也试过了 sheet.Columns[1].Select().Sort(); 先select列,但是这也不起作用。 我怎样才能sorting一个单元格的Range ?

VSTO在代码ADDIN NOT LOADED中启动EXCEL

我使用以下代码从代码启动Excel: var excelApp = new MSExcel.Application { Visible = true }; excelApp.Workbooks.Add(); excelApp = null; 我已经添加了第二行,因为如果没有它,Excel会在启动器closures时自动closures。 当我添加新的工作簿时,它保持活跃。 不过,我的加载项与发射器没有任何关系。 有什么build议么 ? 谢谢你的build议。