You are quite correct using a connection to get the sheet names. I think Rupali identified your problem.Is the provider 32 bit or 64? I suspect that when you load, you are using 32 bit desktop, but the server is running 64 bit and there is no 64 bit provider. Try
CONNECT32 TO [Provider=Micr....
This will cause the server to use a 32 bit provider.
The other possibility is the the Excel provider is not installed at all. I suspect that by default it is only installed if Excel is installed on the server?
Logic will get you from a to b. Imagination will take you everywhere. - A Einstein