C#Excel左右边框

时间:2013-03-07 15:35:54

标签: c# excel c#-4.0 border

我想在单元格上创建边框,然后在左右边框上创建边框。

我尝试了这段代码,但它不起作用:(

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不可能在单元格左侧和右侧的边框?

2 个答案:

答案 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...