2012-06-12 3 views
4

Я пытаюсь прочитать данные из файла Excel в своем приложении Windows.C# .NET Excel и OLEDB Connection String

Строка подключения:

provider = Microsoft.Jet.OLEDB.4.0; Data Source = "Excel File"; 
Extended Properties = \"Excel 8.0; HDR = Yes; ImportMixedTypes = Text; 
Imex = 1;\" 

С помощью этой строки подключения я в состоянии считывать данные из файла Excel даже хотя офис Microsoft - Excel не установлен на компьютере. Но некоторые, как, моя программа не совместима с этой строкой соединения.

строки соединения, которые я использую прямо сейчас

provider = Microsoft.ACE.OLEDB.12.0; Data Source = "Excel file"; 
Extended Properties = "Excel 12.0; HDR = Yes; Imex = 1; 

Эта строка соединения совместима с моей программой, но он работает только на компьютере, на котором действительно есть офис Microsoft Excel - установить.

Может кто-нибудь предложить мне, где я делаю ошибку.

Спасибо.

+1

Это xls или xlsx? – Yatrix

+0

Я думаю, проблема в том, что вы используете версию OLEDB. Попробуйте исследовать это. – Botonomous

+0

@Yatrix: Я пытаюсь читать как xls, так и xlsx. –

ответ

5

Microsoft удалил движок JET во всех версиях Windows после 2003 года, включая 64-разрядную Windows 2003. ACE - это современная альтернатива, но она также не распространяется с базовой установкой Windows.

Чтобы использовать ACE, вам необходимо развернуть бесплатный ACE, который можно распространять из Microsoft на все целевые компьютеры, на которых не установлен Office. Затем вы можете использовать вторую строку соединения, которую вы указали в любом из них.

Получить его от Microsoft здесь: http://www.microsoft.com/en-us/download/details.aspx?id=13255

+0

Дайте мне когда-нибудь. Я пытаюсь установить этот драйвер и проведу свою программу. –

+0

Обязательно прочтите инструкции на этой странице, так как она предоставляет специфику строк подключения. – dodexahedron

+0

+1 Этот человек понимает, что ACE не поставляется с Windows, как JET. –

0

Если вы можете использовать сторонние библиотеки, есть довольно хороший проект там, что предлагает использовать Linq для доступа файлов Excel. Проверьте это: http://code.google.com/p/linqtoexcel/