Я хочу создать метод для получения имен всех листов в книге. В моей книге 7 листов. Если я хочу читать и сохранять имена листов в переменной excelSheets, я получаю 9 имен, где два имени отвечают на несуществующие листы («списки $» и «TYPAB»).Как получить имена всех листов в excel
Я не понимаю, где проблема? Как я могу получить имена только существующие листы?
public List<string> NamesOfSheets(string filename)
{
string con = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties='Excel 12.0;HDR=Yes;'";
using (OleDbConnection connection = new OleDbConnection(con))
{
connection.Open();
List<string> excelSheets;
try
{
DataTable dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
excelSheets = dt.Rows.Cast<DataRow>()
.Select(i => i["TABLE_NAME"].ToString()).ToList();
return excelSheets;
}
catch (Exception)
{
throw new Exception("Failed to get SheetName");
}
}
}