Excel的边框样式wellexplored跨internet(这里堆栈不亚于任何地方),但我已经完全找不到覆盖越来越样式值的任何文件;每个问题,页面和PDF我发现只讨论设置。获取Excel的边框样式在C#在C#
如何从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中发生了什么时,它不会立即有用......然后再一次,这可能完全是错误的方法。
感谢
这似乎没有设置边框样式,只检查它是否等于另一个值(这真的只是得到了风格,我认为)。不过,我可能会误解。你能再解释一下吗? –
也许我并不完全理解你的意思是'边界样式'这会让你围绕'范围'的边界你是否只专门寻找边界的颜色? – chancea
我试图*得到*各种边框样式(颜色,样式,宽度)。例如,如果(在Excel应用程序中)我将单元格边框的颜色设置为全红,我希望我的函数为该单元格返回一个“String”:“rgb(255,0,0)”(通过到“范围”参数的功能)。类似的'样式',我想能够设置一个单元格的边框为虚线(或任何),并为我的函数返回字符串“虚线”。 –