【问题标题】:How to convert from System.Drawing.Color to Excel.ColorFormat in C#? Change comment color如何在 C# 中从 System.Drawing.Color 转换为 Excel.ColorFormat?更改评论颜色
【发布时间】:2016-06-13 09:20:27
【问题描述】:

我正在为 Excel 开发一个 vsto 插件,我正在尝试将颜色更改为 Excel 中的 cmets。

这是我的代码:

Excel.Range activeCell = _application.ActiveCell;
activeCell.AddComment("some text"));
activeCell.Comment.Shape.Fill.BackColor = Color.Red;

我得到的例外是:

无法将类型“System.Drawing.Color”隐式转换为“Microsoft.Office.Interop.Excel.ColorFormat”

我找不到如何在这两种格式之间进行转换。

【问题讨论】:

标签: c# excel vsto excel-addins system.drawing.color


【解决方案1】:

一种选择是使用ColorTranslator.ToOle

int oleColor = ColorTranslator.ToOle(Color.Red);
activeCell.Comment.Shape.Fill.BackColor.RGB = oleColor;

【讨论】:

  • 问题是要求反过来转换,所以这个答案不正确......我想知道为什么支持者也没有阅读这个问题......哈,也许你有一个克隆
  • 感谢@HariPrasad,它解决了我的问题。我在其他任何地方都找不到答案!
【解决方案2】:

试试这个:

activeCell.Comment.Shape.Fill.BackColor = XlRgbColor.rgbRed;

或者这个(编辑:假):

activeCell.Comment.Shape.Fill.BackColor.RGB =  Color.FromRgb(255,0,0);

【讨论】:

  • 我不相信这会奏效。 Color.FromRgb 仍然会返回一个 Color 对象,而 RGB 不会接受它。如果是这样,那么 OP 可以按照最初的尝试使用 Color.Red
猜你喜欢
  • 1970-01-01
  • 2018-05-31
  • 1970-01-01
  • 2012-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 2012-03-30
相关资源
最近更新 更多