如何在C#中向Excel范围添加底部边框?

如何在C#中向Excel范围添加底部边框?,c#,excel,border,office-interop,excel-interop,C#,Excel,Border,Office Interop,Excel Interop,我需要在电子表格的某些行中添加一个底部边框(简单的实线)。我已定义了需要使用的范围,但添加边界代码的尝试失败,这可以从注释掉的尝试中看出: private ApplicationClass _xlApp; private Workbook _xlBook; private Sheets _xlSheets; private Worksheet _xlSheet; . . . private void AddBottomBorder(int rowToBottomBorderize) {

我需要在电子表格的某些行中添加一个底部边框(简单的实线)。我已定义了需要使用的范围,但添加边界代码的尝试失败,这可以从注释掉的尝试中看出:

private ApplicationClass _xlApp;
private Workbook _xlBook;
private Sheets _xlSheets;
private Worksheet _xlSheet;
. . .
private void AddBottomBorder(int rowToBottomBorderize)
{
    var rangeToBottomBorderize = (Range)_xlSheet.Cells[rowToBottomBorderize, TOTALS_COL];
    //rangeToBottomBorderize.Borders[_xlApp.XlBordersIndex.xlEdgeBottom] = 
    //rangeToBottomBorderize.Borders[XlBordersIndex.xlEdgeBottom] = 1d;
    //rangeToBottomBorderize.Borders[_xlSheet.
    //_xlSheet.Cells[rowToBottomBorderize, TOTALS_COL].Borders[Excel.XlBordersIndex.xlEdgeBottom].Weight = 1d;
   // someRange.Borders.Item[XlBordersIndex.xlEdgeBottom)] = ...what now?
}
我需要分配或调用哪些对象的属性或方法,以及如何分配或调用这些属性或方法?

尝试以下操作:

setBorder( rangeToBottomBorderize.Borders[_xlApp.XlBordersIndex.xlEdgeBottom], XlBorderWeight.xlThick );
辅助功能:

  private static void setBorder( Border border, XlBorderWeight borderWeight )
  {
     border.LineStyle = XlLineStyle.xlContinuous;
     border.ColorIndex = XlConstants.xlAutomatic;
     border.TintAndShade = 0;
     border.Weight = borderWeight;
  }
要清除边框,可以使用:

border.LineStyle = XlConstants.xlNone
对于您可能需要的边框权重。xlThin

边界重量:

见:

对于其他线条样式选项,您可以尝试(我没有尝试过这些选项):

以下是我的使用声明(您不需要所有这些):

这对我很有用:

private void AddBottomBorder(int rowToBottomBorderize)
{
    var rowToBottomBorderizeRange = _xlSheet.Range[_xlSheet.Cells[rowToBottomBorderize, ITEMDESC_COL], _xlSheet.Cells[rowToBottomBorderize, TOTALS_COL]];
    Borders border = rowToBottomBorderizeRange.Borders;
    border[XlBordersIndex.xlEdgeBottom].LineStyle = XlLineStyle.xlContinuous;
}

“XlBordersIndex”未被识别;我得到,“'Microsoft.Office.Interop.Excel.ApplicationClass'不包含'XlBordersIndex'的定义,并且找不到接受类型为'Microsoft.Office.Interop.Excel.ApplicationClass'的第一个参数的扩展方法'XlBordersIndex'(是否缺少using指令或程序集引用?)”XlConstants也未被识别。感谢您的尝试,但即使使用了所有这些用法,它仍然无法为我编译,在相同的两个方面(“XLBordersIndex”和“XLConstants”)失败。XLBordersIndex是小的“l”,而不是“l”。@B.ClayShannon-如果您添加此using语句,它仍然有效:using XLConstants=Microsoft.Office.Interop.Excel.Constants;(我编辑了此解决方案以将其包括在内——希望在审阅后它会显示出来。)
private void AddBottomBorder(int rowToBottomBorderize)
{
    var rowToBottomBorderizeRange = _xlSheet.Range[_xlSheet.Cells[rowToBottomBorderize, ITEMDESC_COL], _xlSheet.Cells[rowToBottomBorderize, TOTALS_COL]];
    Borders border = rowToBottomBorderizeRange.Borders;
    border[XlBordersIndex.xlEdgeBottom].LineStyle = XlLineStyle.xlContinuous;
}