【问题标题】:How can I set Excel tab color using Interop如何使用互操作设置 Excel 选项卡颜色
【发布时间】:2018-05-12 09:29:48
【问题描述】:

我以为这很容易,但显然不是。我正在处理的报告中有一些来源被淘汰。这意味着我需要隐藏 2/3 的工作表并将隐藏的选项卡涂成红色,以明确哪些正在使用,哪些未使用。到目前为止,我尝试了多种方式的Tab.Color和Tab.ColorIndex,都没有找到方法。

全 ARGB:

System.Drawing.Color clr = System.Drawing.Color.FromArgb(255, 255, 0, 0);
int index = clr.ToArgb();
int hiddenTabColor = index;
...
worksheet.Tab.Color = hiddenTabColor;

添加 System.ComponentModel 以使用 Converter:

var converter = System.ComponentModel.TypeDescriptor.GetConverter(typeof(Color));
Color clr = (Color)converter.ConvertFromString("#FFFF0000");
...
worksheet.Tab.Color = clr;

我尝试了十几种排列方式,但均未成功。结果始终是一个将 xlAutomatic 显示为黑色的选项卡。我已经尝试过所有方法的重载。

重要信息是,这是在 Visual Studio 2013 中使用 Interop 写入 Microsoft Office Professional Plus 2013 (Excel)。

【问题讨论】:

  • 你用ColorIndex做了什么?
  • workbook.Tab.ColorIndex = (ColorIndex)3; workbook.Tab.ColorIndex = (颜色)3;工作簿.Tab.ColorIndex = (Int32)3;工作簿..Tab.ColorIndex = (ColorIndex)Color.Red;每次使用颜色索引的错误是我需要投射。

标签: c# excel colors tabs


【解决方案1】:

使用 LINQPad,我可以毫无问题地让它工作:

var xl = (Excel.Application) Marshal.GetActiveObject("Excel.Application");
var xls = (Excel.Worksheet)xl.ActiveWorkbook.ActiveSheet;

xls.Tab.ColorIndex = (Excel.XlColorIndex)3;
xls.Tab.Color = 255;

【讨论】:

  • 我没有使用编组类,但这里是调用前的设置:
  • 我什么都没看到?
  • 我很抱歉。我在使用 Markdown 时遇到了困难。今天是月底,我整天都在从一个危机到另一个危机中被鞭打。让我再试一次:
  • Excel.Application excel = new Excel.Application(); Excel.Workbook wbExcel = excel.Workbooks.Add(Type.Missing); Excel.Worksheet 工作表 = (Excel.Worksheet)wbExcel.Sheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing); .... worksheet.Tab.ColorIndex = (Excel.XlColorIndex)3;
  • 我应该补充一点,这是遗留代码,我是从一个开发人员那里提取的,他们太忙了,甚至说'是''不'。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-19
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多