【问题标题】:C# Excel Border Left and RightC# Excel左右边框
【发布时间】:2013-03-07 15:35:53
【问题描述】:
我想在单元格上创建边框,然后创建左右边框。
我试过这段代码,但它不起作用:(
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 无法在单元格的左侧和右侧设置边框?
【问题讨论】:
标签:
c#
excel
c#-4.0
border
【解决方案1】:
试试这个:
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;
我认为我的原始版本间接使用了两个点。
【解决方案2】:
您可以像这样为特定边框设置线条样式和颜色:
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...