Я використовую OleDb для читання з робочої книги excel з багатьма аркушами.
Мені потрібно прочитати назви аркушів, але мені вони потрібні в порядку, визначеному в електронній таблиці; тому якщо у мене є файл, який виглядає приблизно так;
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
\__GERMANY__/\__UK__/\__IRELAND__/
Тоді мені потрібно дістати словник
1="GERMANY",
2="UK",
3="IRELAND"
Я намагався використовувати OleDbConnection.GetOleDbSchemaTable()
, і це дає мені список імен, але він алфавітно їх сортує. Альфа-сортування означає, що я не знаю, якому номеру аркуша відповідає конкретна назва. Так я отримую;
GERMANY, IRELAND, UK
яка змінила порядок UK
і IRELAND
.
Причина, за якою я потребую сортування, полягає в тому, що я повинен дозволити користувачеві вибирати діапазон даних за іменем або індексом; вони можуть запитати "усі дані з Німеччини до Ірландії" або "дані з листа 1 до листа 3".
Будь-які ідеї будуть дуже вдячні.
якби я міг скористатися офісними інтероп-класами, це було б просто. На жаль, я не можу, тому що класи interop не працюють надійно в неінтерактивних середовищах, таких як Windows-сервіси та ASP.NET-сайти, тому мені потрібно було використовувати OLEDB.