Estoy usando OleDb para leer un libro de Excel con muchas hojas.
Necesito leer los nombres de las hojas, pero los necesito en el orden en que están definidos en la hoja de cálculo; así que si tengo un archivo que se ve así;
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
\__GERMANY__/\__UK__/\__IRELAND__/
Entonces necesito conseguir el diccionario
1="GERMANY",
2="UK",
3="IRELAND"
He intentado usar OleDbConnection.GetOleDbSchemaTable()
, y eso me da la lista de nombres, pero los ordena alfabéticamente. La clasificación alfa significa que no sé a qué número de hoja corresponde un nombre en particular. Así que consigo;
GERMANY, IRELAND, UK
que ha cambiado el orden de UK
y IRELAND
.
La razón por la que necesito que se ordene es que tengo que dejar que el usuario elija un rango de datos por nombre o índice; pueden solicitar "todos los datos de ALEMANIA a IRLANDA" o "datos de la hoja 1 a la hoja 3".
Cualquier idea será muy apreciada.
si pudiera usar las clases de interoperabilidad de la oficina, esto sería sencillo. Desafortunadamente, no puedo porque las clases de interoperabilidad no funcionan de manera confiable en entornos no interactivos como los servicios de Windows y los sitios ASP.NET, por lo que necesitaba usar OLEDB.