2

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

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

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 无法在单元格的左侧和右侧设置边框?

4

2 回答 2

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 对象并且想要避免使用两个点(请参阅此处的讨论),您可以保留对您使用的边框的引用,如下所示:

var right = range.Borders[XlBordersIndex.xlEdgeRight];
var left = range.Borders[XlBordersIndex.xlEdgeLeft];
right.Color = color;
left.Color = color;

我认为我的原始版本间接使用了两个点。

于 2013-03-07T15:42:27.967 回答
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对象的引用可确保您可以处理它并且不会让它闲置。请参阅在使用 Excel 时消除“2 点”的使用...

于 2013-03-07T16:38:09.697 回答