12

我从 Microsoft 的文档中看到,我可以使用“xlBordersIndex”属性访问单元格的特定边框边缘,例如为单元格的左边缘设置边框样式:

range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft].LineStyle =     Excel.XlLineStyle.xlContinuous;

但是,如果我只想绘制所有边界怎么办?我试过了

range.BorderAround2();

但这只是在范围本身周围画了一个框,我理解。所以我尝试了

range.Cells.BorderAround2();

认为它将遍历范围内的每个单元格并在每个单元格周围放置所有边框。这不是发生的事情。因此,为了获得一个范围内所有单元格的所有边框,我必须手动访问四个边框索引中的每一个吗?

4

7 回答 7

22
private void AllBorders(Excel.Borders _borders)
    {
        _borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Excel.XlLineStyle.xlContinuous;
        _borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle = Excel.XlLineStyle.xlContinuous;
        _borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle = Excel.XlLineStyle.xlContinuous;
        _borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Excel.XlLineStyle.xlContinuous;
        _borders.Color = Color.Black;
    }
于 2013-02-07T20:47:30.610 回答
8
oRange = SHEET2.get_Range("a1", "a10");
oRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlLineStyle.xlContinuous;
oRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlContinuous;
oRange.Borders.get_Item(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlContinuous;
oRange.Borders.get_Item(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlContinuous;
于 2015-02-04T02:15:01.107 回答
6

我还不熟悉 C#,但在 VBA 中有Range.Borders(xlInsideVertical)Range.Borders(xlInsideHorizontal)属性。尝试使用宏记录器并为任何工作簿区域应用所有边框。也许这会有所帮助。

于 2013-02-02T16:33:44.147 回答
6

终于我明白了。我这样做也没有影响性能。我在这里用一个简单的excel来解释:

之前

在此处输入图像描述

我设法将范围作为A1:C4变量动态存储在exRange中,并使用下面的代码给出边框

((Range)excelSheet.get_Range(exRange)).Cells.Borders.LineStyle = XlLineStyle.xlContinuous;


在此处输入图像描述

于 2016-09-10T11:24:28.980 回答
1
For Each range In ranges
    For Each row As Range In .Range(range).Rows
        row.Cells.BorderAround(XlLineStyle.xlContinuous)
        row.Cells.Borders.Item(XlBordersIndex.xlInsideHorizontal).LineStyle = XlLineStyle.xlContinuous
        row.Cells.Borders.Item(XlBordersIndex.xlInsideVertical).LineStyle = XlLineStyle.xlContinuous
    Next
Next
于 2016-06-22T09:49:19.710 回答
1

为什么不简单地做:

Excel.Range tRange = xlWorkSheet.UsedRange;
tRange.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
tRange.Borders.Weight = Excel.XlBorderWeight.xlThin;

注意:在填充数据的行和单元格(范围)之后应用边框以获取范围,只需使用函数.UsedRange()

于 2017-08-10T08:45:30.630 回答
1
Microsoft.Office.Interop.Excel.Range tRange = xlWorkSheet.UsedRange;
        tRange.Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
        tRange.Borders.Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;
于 2017-08-22T12:28:54.133 回答