C#正在检查是否存在单元格边界

本文关键字:存在 单元格 边界 是否 检查 | 更新日期: 2023-09-27 17:58:23

我目前正在使用Microsoft.Office.Interop.Excel用C#做一个小项目,我有点卡住了。

我想做的是创建一个方法,该方法接受一个Range,然后根据该范围的底部边缘是否有边界来返回true或false。

private bool BottomEdgeHasBorder(string range)
{
if (has border at bottom edge of range)
return true;
else
return false;
}

我已经搜索了很多这个问题,但我能找到的都是关于添加边界的问题。我只是想看看是否有边界。

我试过

Excel.Range range = ExcelWorksheet.get_Range(range, Type.Missing);
if (range.Borders[Excel.XlBordersIndex.xlEdgeBottom] == Excel.XlLineStyle.xlContinuous)
return true;

非常感谢任何帮助!

C#正在检查是否存在单元格边界

遇到了同样的问题。要将边框的行样式与行样式枚举进行比较,请将GetHashCode()附加到行样式枚举以获得等效的整数:

Microsoft.Office.Interop.Excel.Range range = sheet.get_Range("AK59");
Microsoft.Office.Interop.Excel.Borders borders = range.Borders;
Microsoft.Office.Interop.Excel.Border borderTop = borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop];
Microsoft.Office.Interop.Excel.Border borderLeft = borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft];
Microsoft.Office.Interop.Excel.Border borderBottom = borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom];
Microsoft.Office.Interop.Excel.Border borderRight = borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight];
if (borderBottom.LineStyle == Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous.GetHashCode())
{
    Console.WriteLine("We have a bottom border line");
}
if (borderRight.LineStyle == Microsoft.Office.Interop.Excel.XlLineStyle.xlDouble.GetHashCode())
{
    Console.WriteLine("We have a double line on the right border");
}
if (borderRight.LineStyle != Microsoft.Office.Interop.Excel.XlLineStyle.xlLineStyleNone.GetHashCode())
{
    Console.WriteLine("yeah we have some type of border on the right");
}

我认为您需要获取LineStyle属性进行比较。我对C#语法有点生疏,但我认为这正是您需要使用的。

range。Borders[Excel.XlBordersIndex.xlEdgeBottom]。LineStyle

bool BottomEdgeHasBorder(Range cell)
{
      return cell.Borders[XlBordersIndex.xlEdgeBottom].LineStyle != (int)XlLineStyle.xlLineStyleNone;
}