【问题标题】: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...

      【讨论】:

        猜你喜欢
        • 2016-09-26
        • 2013-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-21
        • 2013-09-22
        • 2015-01-01
        • 1970-01-01
        相关资源
        最近更新 更多