【问题标题】:ExcelDataReader reads all invisible sheetsExcelDataReader 读取所有不可见的工作表
【发布时间】:2017-11-01 09:07:40
【问题描述】:

在 Excel 中,有一个功能可以隐藏一些工作表。我正在阅读包含此类表格的文档,我想忽略它们。

这是我可以隐藏或取消隐藏工作表的地方:

  1. 在“开始”选项卡的“单元格”组中,单击“格式”。
  2. 在可见性下,单击隐藏和取消隐藏,然后单击取消隐藏工作表。

如何使用ExcelDataReader 在 Excel 中获取仅 Excel 可见的工作表名称列表?

【问题讨论】:

    标签: c# excel exceldatareader


    【解决方案1】:

    如果使用阅读器界面,IExcelDataReader.VisibleState 属性会返回当前阅读工作表的可见性状态。

    如果使用.AsDataSet(),则可以从DataTable.ExtendedProperties["visiblestate"] 中检索到相同的值

    【讨论】:

      【解决方案2】:

      如何使用ExcelDataReader 获取 Excel 中可见工作表名称的列表?

      // Prepare your reader by 
      var stream = File.Open(yourExcelFilename, FileMode.Open, FileAccess.Read);
      var excelDataReader = ExcelDataReader.ExcelReaderFactory.CreateOpenXmlReader(stream);
      
      // This variable will store visible worksheet names
      List<string> visibleWorksheetNames;
      
      // Use a loop to read workbook    
      visibleWorksheetNames = new List<string>();
      for (var i = 0; i < excelDataReader.ResultsCount; i++)
      {
          // checking visible state
          if (excelDataReader.VisibleState == "visible")
          {
              visibleWorksheetNames.Add(excelDataReader.Name);
          }
      
          excelDataReader.NextResult();
      }
      

      【讨论】:

        【解决方案3】:

        只读数据集的可见工作表:

        using (var stream = File.Open("test.xlsx", FileMode.Open, FileAccess.Read))
        {
            using (var reader = ExcelReaderFactory.CreateReader(stream))
            {
                var ds = reader.AsDataSet(new ExcelDataSetConfiguration()
                {
                    FilterSheet = (tableReader, sheetIndex) => tableReader.VisibleState == "visible",
                });
            }
        }
        
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-06-11
          • 2019-10-25
          • 1970-01-01
          • 2017-11-18
          • 2017-05-19
          • 1970-01-01
          相关资源
          最近更新 更多