ExcelDataReader读取所有不可见的工作表

时间:2017-11-01 09:07:41

标签: c# excel exceldatareader

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

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

  1. 在“主页”选项卡上的“单元格”组中,单击“格式化”。
  2. 在“可见性”下,单击“隐藏&取消隐藏,然后单击“取消隐藏工作表”。
  3. 如何使用ExcelDataReader在Excel中获取唯一的Excel VISIBLE工作表名称列表?

2 个答案:

答案 0 :(得分:1)

  

如何使用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();
}

答案 1 :(得分:0)

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

如果使用.AsDataSet(),则可以从DataTable.ExtendedProperties["visiblestate"]

中检索相同的值