Usando Excel OleDb para obtener nombres de hoja EN PEDIDO DE HOJA

Estoy usando OleDb para leer un libro de Excel con muchas hojas.

Necesito leer los nombres de las hojas, pero las necesito en el orden en que están definidas 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 usarOleDbConnection.GetOleDbSchemaTable(), y eso me da la lista de nombres, pero los ordena alfabéticamente. La ordenación alfabética significa que no sé a qué número de hoja corresponde un nombre en particular. Así que entiendo;

GERMANY, IRELAND, UK

que ha cambiado el orden deUK yIRELAND.

La razón por la que necesito que se ordene es que debo permitir 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ía apreciada grandemente

Si pudiera usar las clases de interoperabilidad de 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.

Respuestas a la pregunta(11)

Su respuesta a la pregunta