2013-03-07 142 views
1

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

我想这个代码,但它不工作:(

objSheet.get_Range("F19").Borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = true; 
objSheet.get_Range("F19").Borders.Color = Color.Black; 

我让你在这里看到的第二个。(边框四周) http://i.imgur.com/EUgmJNB.png

我怎样才能得到这个工作吗?或者?是在边框到Excel不可能的细胞从C#的左侧和右侧

回答

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

谢谢你的工作! – Marco 2013-03-07 16:44:13

+0

帮了我。好办法 – 2014-03-02 15:06:09

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