Я работаю с некоторым кодом, который использует OleDbConnection для загрузки данных из файла Excel в DataTable. В настоящее время по умолчанию используется первый лист, но его имя получают с использованием следующего кода:
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myFilename.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES"""
DataTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (schemaTable.Rows.Count > 0)
return schemaTable.Rows[0]["TABLE_NAME"].ToString();
else
return "Sheet1$"
Это работало нормально до недавнего времени, когда документ Excel (который мы получаем от третьей стороны) начал содержать именованные диапазоны. У меня нет скрытых листов, которые я могу найти.
Теперь
schemaTable.Rows[0]["TABLE_NAME"].ToString()
возвращает имя первого диапазона.
Могу ли я сделать что-то другое с моим объектом schemaTable для идентификации только листов, а не именованных диапазонов в листе?