Tag: vsto

删除条件格式

我想用下面的代码添加使用C#的条件格式。 Microsoft.Office.Interop.Excel.FormatCondition formatConditionObj = null; formatConditionObj = (Microsoft.Office.Interop.Excel.FormatCondition)myRange .FormatConditions.Add(Excel.XlFormatConditionType.xlExpression, Type.Missing, true, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); formatConditionObj.Interior.ColorIndex = 5; dynamic我改变这些格式应用的范围 formatConditionObj.ModifyAppliesToRange(NewRange); 现在我想删除这个应用的格式,这个如何实现。 formatConditionObj.Delete(); 这对我不起作用。 这不会删除应用它的所有单元格的格式。 只有最后一个单元格格式被删除。 我也试过使用 formatConditionObj.AppliesTo.Delete(); 但是它也删除了其他适用于该单元格的ConditionalFormats。 注意:某些格式已应用于应用了这种条件格式的单元格,例如一些填充颜色。 即使在某些单元格上还应用了其他一些条件格式。 我只想删除这个特定的ConditionalFormat(formatConditionObj)。 谁能帮我。

仅为Excel VSTO注册快捷键

在我的VSTO项目( 对于Excel )中,我想在我的C#代码中将一个快捷键( 3个键的键盘组合 )挂接到一个函数中。 例如,当我按CTRL + SHIFT + C函数MyShortCutFuction应该调用。

Excel范围样式:通过VSTO指定边框不起作用

通过逐个设置个别格式化属性而不是格式化范围,我试图使用Excel样式,因为格式化大量单元格似乎更快。 我定义一个样式,然后将其应用到这样的范围: var cell = worksheet.Cells[row, column]; cell.Style = "MyCustomStyle"; 它适用于室内的颜色和字体,但我遇到奇怪的问题,当试图与边界工作。 当我尝试定义在范围上显示哪些边界,以及如何对其进行格式化时,会得到不可预知的结果,并且无法find控制它的方法。 下面的方法创build一个名为ListRowStyle的Style; private static void CreateListRowStyle(Workbook workbook) { var listRowStyle = workbook.Styles.Add(ListRowStyle); listRowStyle.Interior.Color = ColorTranslator.ToOle(Color.LightGray); listRowStyle.Font.Color = ColorTranslator.ToOle(Color.DarkBlue); listRowStyle.Font.Bold = true; listRowStyle.IncludeBorder = true; listRowStyle.Borders.Color = ColorTranslator.ToOle(Color.Black); listRowStyle.Borders.LineStyle = XlLineStyle.xlContinuous; listRowStyle.Borders.Weight = XlBorderWeight.xlMedium; } 这创造了范围内的每一个边界(垂直,水平和对angular线) – 到目前为止,这么好。 但是,当我尝试仅显示顶部和底部边框时,使用以下代码,问题开始发生: private static void CreateEditableListRowStyle(Workbook workbook) { […]

无法创buildVSTO Excel工作簿项目

我在两台计算机上有两个问题,我还有一个问题没有解答,就是打开一个现有的VTSO Excel工作簿。 但是,这个问题是关于与VSTO创build一个新的项目。 如果我在新项目中selectExcel 2013工作簿C#并select创build新工作簿,它将开始打开Excel,然后在VS中出现此错误 真奇怪的是,它发生在我拥有的两台计算机上,结合了Office 2010和Office 2013.我已经安装了最新的R2和VSTO May版本。 卸载并重新安装VS 2013没有什么区别,在R2和R2之间切换VS没有任何区别。 开放现有项目也失败了。 我读了这个问题,并尝试了build议的答案,最显着的是: 但无济于事。 我不知所措,因为我不能在我的项目上工作。 有没有人有任何想法?

VSTO COM加载项ProgID

我有一个问题,加载项的ProgID是MyAddin,而我希望它是MyAddin.Connect,因为有很多现有的电子表格,其中VBA引用MyAddin.Connect 。 我已将MyAddin的每个实例更改为csproj文件, 清单和vsto文件中的MyAddin.Connect。 我已经更改了registry中的每个实例。 甚至是registry项HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Office \ Excel \ Addins \ MyAddIn 到MyAddIn.Connect 仍然当我通过VBA检查ProgID ,它说MyAddin(在COM加载项pipe理器中的友好名称是MyAddin.Connect)。 ProgID从Excel中的VBA中加载到哪里? 我应该注意到,当我通过Visual StudiodebuggingAddIn时,它工作的很好。 但是,当我通过InstallShield安装程序安装它时,它只是拒绝工作。

如何删除图纸上的图像

嗨,让我们说,我有我的Excel工作表上的图像,如何删除/删除它们从工作表使用C#, 下面的代码给我例外 Excel.Worksheet ws = Globals.ThisAddIn.GetActiveWorksheet(); foreach (Excel.Shape sh in ws.Shapes) { sh.Delete(); } 谢谢!

通过C#编写string,数字数据到Excel工作,但Excel不正确处理数字数据

我从Sybase返回结果集,返回到C#客户端。 我使用下面的函数将结果集数据写入Excel: private static void WriteData(Excel.Worksheet worksheet, string cellRef, ref string[,] data) { Excel.Range range = worksheet.get_Range(cellRef, Missing.Value); if (data.GetLength(0) != 0) { range = range.get_Resize(data.GetLength(0), data.GetLength(1)); range.set_Value(Missing.Value, data); } } 数据被正确写入。 问题是,因为我使用string数组来写入数据(这是string和浮点数的混合),所以Excel使用消息“Number Stored as Text”突出显示包含数字数据的每个单元格。 我如何摆脱这个问题? 非常感谢Chapax

Excel对象模型的文档

.NET的Excel interop API在msdn.com上的文档似乎相当稀疏​​。 有没有人知道在networking上其他地方更彻底的文件? 我正在寻找的东西,例如,列出和解释工作表对象的所有属性。 谢谢。

检索对象对象的引用的“正确”方法是什么?

对于VSTO工作簿项目,是否有从ThisWorkbook类中检索Ribbon对象的引用的最佳做法? 以下是我正在做的:在我的function区类中,我创build了一个名为InvalidateControl(string controlID)的公共方法InvalidateControl(string controlID) 。 我需要从ThisWorkbook类调用该方法基于何时触发某个工作簿级别事件。 但是,我能看到“获得”该Ribbon对象的引用的唯一方法是执行此操作。 // This is all in the ThisWorkbook class Ribbon ribbon; protected override IRibbonExtensibility CreateRibbonExtensibilityObject() { this.ribbon = new Ribbon(); return this.ribbon; } 这似乎有点臭。 我的意思是,我不得不重写CreateRibbonExtensibilityObject() ; 除此之外,我所做的所有工作都是维护对function区的本地引用,所以我可以调用相应的方法。 但是感觉不对。 在ThisWorkbook类中有没有另外一种更好的方法来获取这个引用? 或者这是相当可接受的? 谢谢!

剪切并粘贴整个Excel列

我正在寻找一些关于如何在Excel中剪切和粘贴整个列的示例代码。