我想在单元格上创建边框,然后在左右边框上创建边框。
我尝试了这段代码,但它不起作用:(
objSheet.get_Range("F19").Borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = true;
objSheet.get_Range("F19").Borders.Color = Color.Black;
我得到你在这里看到的第二个。 (周围的边界) http://i.imgur.com/EUgmJNB.png
我怎样才能使这个工作?或者是从C#到Excel不可能在单元格左侧和右侧的边框?
答案 0 :(得分:2)
试试这个:
var range = objSheet.get_Range("F19");
System.Drawing.Color color = System.Drawing.Color.Black;
range.Borders[XlBordersIndex.xlEdgeRight].Color = color;
range.Borders[XlBordersIndex.xlEdgeLeft].Color = color;
编辑:如果您担心清理Excel对象并且想要避免使用两个点(see discussion here),则可以保留引用您使用的边框,如下所示:
var right = range.Borders[XlBordersIndex.xlEdgeRight];
var left = range.Borders[XlBordersIndex.xlEdgeLeft];
right.Color = color;
left.Color = color;
我认为我原来的版本间接使用了两个点。
答案 1 :(得分:1)
您可以设置特定边框的线条样式和颜色,如下所示:
Excel.Range range = objSheet.get_Range("F19");
Excel.Border border = range.Borders[Excel.XlBordersIndex.xlEdgeRight];
border.LineStyle = Excel.XlLineStyle.xlContinuous;
border.Color = Color.Black;
border = range.Borders[Excel.XlBordersIndex.xlEdgeLeft];
border.LineStyle = Excel.XlLineStyle.xlContinuous;
border.Color = Color.Black;
然后清理你的参考文献:
border = null;
range = null;
专门创建对Excel.Border
对象的引用可确保您可以丢弃它并且不会让它闲置。见Eliminating use of '2 dots' when using Excel...