Estou usando o OleDb para ler uma pasta de trabalho do Excel com muitas planilhas.
Preciso ler os nomes das planilhas, mas preciso deles na ordem em que estão definidos na planilha; então, se eu tiver um arquivo parecido com este;
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
\__GERMANY__/\__UK__/\__IRELAND__/
Então eu preciso pegar o dicionário
1="GERMANY",
2="UK",
3="IRELAND"
Eu tentei usar OleDbConnection.GetOleDbSchemaTable()
e isso me dá uma lista de nomes, mas os classifica em ordem alfabética. A classificação alfa significa que não sei a qual número de folha corresponde um determinado nome. Então eu consigo;
GERMANY, IRELAND, UK
que mudou a ordem de UK
e IRELAND
.
A razão pela qual preciso que seja classificado é que devo deixar o usuário escolher um intervalo de dados por nome ou índice; eles podem pedir 'todos os dados da ALEMANHA para a IRLANDA' ou 'dados da folha 1 à folha 3'.
Quaisquer ideias seriam muito apreciadas.
se eu pudesse usar as aulas de interoperabilidade de escritório, isso seria simples. Infelizmente, não posso porque as classes de interoperabilidade não funcionam de forma confiável em ambientes não interativos, como serviços do Windows e sites ASP.NET, então precisei usar OLEDB.