Musiałbyś bliżej przyjrzeć się temu swojemu łańcuchowi połączenia. Wydaje mi się, że tutaj jest gdzieś błąd. Może to kwestia jakiejś spacji? średnika? Ja u siebie na MS Office 2007 przetestowałem taki kod (powinien też działać ze starszą wersją 2003, nie jestem pewien co do 2010) i działa jak trzeba:
DataTable dt = this.GetExcelData("test.xls", "Select * From [Arkusz1$]");
Kod ten działa zarówno z arkuszem excela zapisanym jako xls oraz jako xlsx. Oczywiście łańcuch połączenia powinien zostać zapisany w pliku konfiguracyjnym aplikacji. Polecam także tą stronę: http://www.connectionstrings.com/
Aha… Wybacz niezrozumienie, po prostu pierwsze widzę, żeby ktoś to tłumaczył. No bo co to jest “connection string” wie prawie każdy programista, a “łańcuch połączenia” to brzmi tak jakby coś było łączone i tworzyło łańcuch… nie wiem, dla mnie tłumaczenie tego tylko zaciemnia sens.
No cóż, takie tłumaczenie się u nas przyjęło (również w polskiej literaturze). Czy oddaje ono w wystarczającym stopniu sens terminu? Pewno nie, ale co zrobić. I tak IMO nie jest wcale tak źle (wystarczy spojrzeć na tłumaczenia niektórych tytułów filmów :D). Niby faktycznie używanie angielskich nazw jest często łatwiejsze, ale ich polskie odpowiedniki też warto znać. Przydaje się w trakcie pisania prac w naszym języku.