【发布时间】:2013-07-08 15:59:10
【问题描述】:
C# 中的 Excel 边框样式在 internet 中是 well explored(在 Stack 和任何地方一样多),但我完全无法找到任何涵盖 getting 样式的文档价值观;我发现的每个问题、页面和 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 documentation 非常迟钝:没有明确的指示 Color 属性的成员是什么,或者我可以期望它返回哪种对象类型。
我想这是故意的,这样可以使用甚至返回多种不同颜色类型中的任何一种,但是当我只想知道边界 x 中发生了什么时,它不会立即有用...然后再说一次,这很可能完全是错误的方法。
谢谢
【问题讨论】: