Open XML 检索 EXCEL

一、Excel 隐藏行判断ui

     项目的 Hidden 属性不为 null,且 Hidden 属性的值为 Truespa

1 var itemList = ws.Descendants<Row>().
2       Where((r) => r.Hidden != null && r.Hidden.Value).
3       Select(r => r.RowIndex.Value).ToList<uint>();

二、隐藏列的检索code

    检索隐藏列的列表会更复杂一些,这是由于 Excel 会将隐藏列的组折叠成一个元素,并会提供 Min 和 Max 属性来描述组中的第一列和最后一列。所以,虽然检索隐藏列的列表的代码首先执行的操做与检索隐藏行的代码首先执行的操做相同,但它必须循环访问索引值(循环访问隐藏列集合中的每一个项,并添加介于 Min 和 Max 值(包含这两个值)之间的每一个索引)。blog

1 var cols = ws.Descendants<Column>().
2   Where((c) => c.Hidden != null && c.Hidden.Value);
3 foreach (Column item in cols)
4 {
5   for (uint i = item.Min.Value; i <= item.Max.Value; i++)
6   {
7     itemList.Add(i);
8   }
9 }

三、隐藏Sheet的判断索引

    Sheet的Sheet.State == null 或者 State.Value == SheetStateValues.Visible 为显示;it

    State.Value 为 SheetStateValues.Hidden 或者 SheetStateValues.VeryHidden 为隐藏io

private static uint GetIndexOfFirstVisibleSheet(Sheets sheets)
{
  uint index = 0;
  foreach (Sheet currentSheet in sheets.Descendants<Sheet>())
  {
    if (currentSheet.State == null || currentSheet.State.Value == SheetStateValues.Visible)
    {
      return index;
    }
    index++;
  }
  throw new Exception("No visible sheet found.");
}
相关文章
相关标签/搜索