Я использую OleDb для чтения из книги Excel с большим количеством листов.
Мне нужно прочитать имена листов, но они мне нужны в том порядке, в котором они определены в электронной таблице; Итак, если у меня есть файл, который выглядит так:
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
\__GERMANY__/\__UK__/\__IRELAND__/
Тогда мне нужен словарь
1="GERMANY",
2="UK",
3="IRELAND"
Я пробовал использовать OleDbConnection.GetOleDbSchemaTable()
, и это дает мне список имен, но он сортирует их по алфавиту. Альфа-сортировка означает, что я не знаю, какому номеру листа соответствует конкретное имя. Итак, я понял;
GERMANY, IRELAND, UK
который изменил порядок UK
и IRELAND
.
Причина, по которой мне нужно его отсортировать, заключается в том, что я должен позволить пользователю выбирать диапазон данных по имени или индексу; они могут запросить «все данные из ГЕРМАНИИ в ИРЛАНДИЮ» или «данные с листа 1 на лист 3».
Любые идеи очень приветствуются.
если бы я мог использовать классы взаимодействия с офисом, это было бы просто. К сожалению, я не могу этого сделать, потому что классы взаимодействия не работают надежно в неинтерактивных средах, таких как службы Windows и сайты ASP.NET, поэтому мне пришлось использовать OLEDB.