C# 中的 Excel 边框样式在Internet上得到了很好的 探索(在 Stack 和任何地方一样多),但我完全找不到任何有关获取样式值的文档;我发现的每个问题、页面和 PDF 都只讨论设置。
如何以有用的形式从 excel 边框获取样式数据? (说,字符串)
我敢肯定,这个问题与我绝对是 C# 新手有关。 Dynamic
类型让我感到困惑和害怕(我想念Java),这个问题很可能围绕着这个问题展开。我正在尝试从 Excel 中的范围内检索各种样式(范围可能是单元格、行或整个表格)并将它们转换为其他形式(出于演示目的,我重写了代码以将 HTML 样式内联编写为细绳)。
using Excel = Microsoft.Office.Interop.Excel;
public static String rangeStyle2InlineHTMLStyle(Excel.Range range)
{
String str = "";
Excel.Style style = range.Style;
Excel.Border border_top = style.Borders[Excel.XlBordersIndex.xlEdgeTop];
Excel.Border border_left = style.Borders[Excel.XlBordersIndex.xlEdgeLeft];
Excel.Border border_right = style.Borders[Excel.XlBordersIndex.xlEdgeRight];
Excel.Border border_bottom = style.Borders[Excel.XlBordersIndex.xlEdgeBottom];
Console.WriteLine(border_top.Color.ToString());
str += "border-top-color:" + color2CSSRGB(border_top.Color) + "; ";
str += "border-left-color:" + color2CSSRGB(border_left.Color) + "; ";
str += "border-right-color:" + color2CSSRGB(border_right.Color) + "; ";
str += "border-bottom-color:" + color2CSSRGB(border_bottom.Color) + "; ";
return "style='" + str + "'";
}
public static String color2CSSRGB(Object c)
{
return "rgb(" + c.R + "," + c.G + "," + c.B + ")";
}
Excel.Style 下面的所有内容似乎都是dynamic
类型,我不知道如何使用它。 MSDN 文档非常迟钝:没有明确指示 Color 属性的成员是什么,或者我可以期望它返回哪种对象类型。
我想这是故意的,这样可以使用甚至返回多种不同颜色类型中的任何一种,但是当我只想知道边界 x 中发生了什么时,它并不是立即有用的……再说一次,它只是很可能这完全是错误的方法。
谢谢