Я пытаюсь получить список рабочих листов в книге Excel, но в коллекции, которую я получаю, есть имена листов и идентификаторы столбца данных, которые, как представляется, называются «Определенные имена» в исходном xlsx xml. Можете ли вы сказать мне, как вернуть только имена рабочих листов?OleDb - Получение имен рабочих листов Excel также извлекает определенные имена
код я использую вдоль линий:
OleDbConnection connExcel = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;"
+ @"Data Source=" + FilePath + ";"
+ @"Extended Properties=""Excel 8.0;HDR=Yes;""");
OleDbCommand cmdExcel = new OleDbCommand();
cmdExcel.Connection = connExcel;
connExcel.Open();
DataTable testTable = connExcel.GetSchema("Tables");
содержимое результирующего TESTTABLE коллекции содержат записи под TABLE_NAME из:
- DATA1
- data2
- DATA3
- DATA4 данные 5
- Лист1 $
- TEST1 -TEST2
- TESTHKEY
- TESTKEYS
- TESTVKEY
Все они имеют TABLE_TYPE стола.
Исходная книга, соответствующая вышеизложенному, имеет 1 лист, содержащий 5 столбцов, первая строка будет содержать заголовок. Меня интересует только запись Sheet1 $. Электронная таблица , созданная в Excel 2010, я пытаюсь обработать ее в приложении ASP.NET 4, написанном на C#. Потенциально имя рабочего листа может быть изменено, поэтому я не могу гарантировать, что он всегда будет Sheet1 $.
Спасибо за ваш ответ, работает для меня как метод пост-обработки! – Mike
После небольшого копания я обнаружил, что определенные имена были автоматически созданы, когда электронная таблица была создана путем экспорта данных из SAP. Кажется, что в итоговом результате в столбце данных есть элемент. Элементы сгруппированы под родительским элементом после группы в пределах элемента . Метод GetSchema выбирает их как «Таблицы». Вы можете удалить определенные имена в Excel, выбрав «Формулы» в ленте, а затем «Менеджер имен» в разделе «Определенные имена». –
Mike
У меня такая же проблема, когда я получаю больше листов, чем фактических, и у меня нет определенного имени. если мое имя листа «abc», то у меня есть другой рабочий лист с именем «abc $». Может ли кто-нибудь объяснить, почему он так себя ведет? Я попытался импортировать этот файл через импорт sql, и он также показывает, что дополнительные листы и я не могу их видеть, когда я открываю файл excel. –