Sto usando OleDb per leggere da una cartella di lavoro Excel con molti fogli.
Ho bisogno di leggere i nomi dei fogli, ma ne ho bisogno nell'ordine in cui sono definiti nel foglio di calcolo; quindi se ho un file che assomiglia a questo;
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
\__GERMANY__/\__UK__/\__IRELAND__/
Allora devo prendere il dizionario
1="GERMANY",
2="UK",
3="IRELAND"
Ho provato a usare OleDbConnection.GetOleDbSchemaTable()
e questo mi dà l'elenco dei nomi, ma li ordina alfabeticamente. L'ordinamento alfa significa che non so a quale numero di foglio corrisponde un particolare nome. Quindi ottengo;
GERMANY, IRELAND, UK
che ha cambiato l'ordine di UK
e IRELAND
.
Il motivo per cui ho bisogno che sia ordinato è che devo lasciare che l'utente scelga un intervallo di dati per nome o indice; possono chiedere "tutti i dati dalla GERMANIA all'IRLANDA" o "dati dal foglio 1 al foglio 3".
Tutte le idee notevolmente sarebbero apprezzate.
se potessi usare le classi di interoperabilità dell'ufficio, sarebbe semplice. Sfortunatamente, non posso perché le classi di interoperabilità non funzionano in modo affidabile in ambienti non interattivi come servizi Windows e siti ASP.NET, quindi dovevo usare OLEDB.