【问题标题】:How can a border be set around multiple cells in excel using C#如何使用C#在excel中的多个单元格周围设置边框
【发布时间】:2020-06-14 23:07:52
【问题描述】:

我正在做一个创建 excel 文件的项目。

我无法在多个单元格上放置边框来组织 Excel 文件。

假设我想要一个从单元格 B5 到 B10 的边框。 B5、B6、B7、...之间不应有边界。

目前,我有这个代码:

workSheet_range = worksheet.get_Range("B5", "B10");
workSheet_range.Borders.Color = System.Drawing.Color.Black.ToArgb();

它制作边框,但是它在每个单元格周围放置一个边框,而不是为所有单元格放置一个大边框。

我怎样才能做到这一点?

【问题讨论】:

标签: c# excel border


【解决方案1】:

您需要单独设置这些

.Borders[Excel.XlBordersIndex.xlEdgeBottom] 
.Borders[Excel.XlBordersIndex.xlEdgeRight]
.Borders[Excel.XlBordersIndex.xlEdgeLeft]  
.Borders[Excel.XlBordersIndex.xlEdgeTop]

【讨论】:

  • 你也可以打开 LineStyle; .Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
  • @FizzBu​​zz - 这会给你每个单元格的边界,这是 OP 不想要的......
  • 这个答案假设有点borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Excel.XlLineStyle.xlContinuous;
  • 我认为@Simon 的答案用一行代码更好地解决了这个问题。
【解决方案2】:

也许这会有所帮助:

workSheet_range.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlThick);

【讨论】:

    【解决方案3】:

    这是在每个单元格周围设置边框的代码:

    xlWS.get_Range("C9", "N9").Cells.Borders.Weight = XL.XlBorderWeight.xlMedium;
    

    【讨论】:

      【解决方案4】:

      我在不影响性能的情况下这样做了。我正在使用一个简单的 excel 进行格式化:

      之前

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

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


      之后

      【讨论】:

        【解决方案5】:
        // ** - You Should do it in all Cells 
        
        //BorderAround: Medium**
        
        worksheet.get_Range("b5", "b5").Cells.BorderAround(Missing.Value, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, ColorTranslator.ToOle(Color.FromArgb(255, 192, 0)));
        
        worksheet.get_Range("b6", "b6").Cells.BorderAround(Missing.Value, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, ColorTranslator.ToOle(Color.FromArgb(255, 192, 0)));
        
        worksheet.get_Range("b10", "b10").Cells.BorderAround(Missing.Value, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, ColorTranslator.ToOle(Color.FromArgb(255, 192, 0)));        
        

        【讨论】:

          【解决方案6】:

          这段代码在 (row1,col1) 到 (row2,col2) 的区域周围设置了一个边框。单个单元格没有边框。变量颜色是一个整数颜色索引号。请参阅http://www.databison.com/excel-color-palette-and-color-index-change-using-vba/ 获取索引号列表及其对应颜色。

              Range cell1 = worksheet.Cells[row1,col1];
              Range cell2 = worksheet.Cells[row2,col2];
              Range range = worksheet.get_Range(cell1,cell2);
              range.BorderAround(
                  Type.Missing, XlBorderWeight.xlThick, (XlColorIndex)color, Type.Missing );
          

          【讨论】:

            【解决方案7】:
            ws.UsedRange.BorderAround(
                                    Xl.XlLineStyle.xlDash,
                                    Xl.XlBorderWeight.xlThick,
                                    Xl.XlColorIndex.xlColorIndexAutomatic,
                                    ColorTranslator.ToOle(Color.Blue));
            

            【讨论】:

              【解决方案8】:

              这是我的解决方案,只需使用 UsedRange() 函数

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

              【讨论】:

                猜你喜欢
                • 2014-03-03
                • 2012-06-15
                • 1970-01-01
                • 1970-01-01
                • 2015-06-19
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多