Я не могу открыть электронную таблицу Excel с .NET на сервере x64, используя следующую строку подключения
"Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + filePath + "; Extended Properties = Excel 8.0;"
Я получаю. Поставщик Microsoft.Jet.OLEDB.4.0 не зарегистрирован на локальном компьютере.
Я установил драйвер системы Office 2007: компоненты подключения к данным и попытался использовать Microsoft.ACE.OLEDB.12.0 и эту строку подключения.
"Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" + filePath + "; Extended Properties = Excel 8.0;"
и получил "Поставщик 'Microsoft.ACE.OLEDB.12.0' не зарегистрирован на локальном компьютере".
Я искал в Google, и единственный ответ - это 64-битная проблема, у кого-нибудь есть идея, как это исправить?
Вы можете использовать Open XML SDK, чтобы открыть файл Excel 2007 и прочитать или изменить его содержимое.
При этом программа Excel не используется, а открывается как XML-документ. Таким образом вы обойдете 64-битную проблему.
Однако это может потребовать серьезных изменений в вашей программе.
Все драйверы Office являются только 32-разрядными, поэтому вы не можете использовать файлы Office из приложений x64; проблема чаще всего возникает, когда приложения ASP.NET в системах x64 пытаются открыть базы данных Acess.
Вам нужно заставить ваше приложение работать в режиме x86; это приложение для Windows или ASP.NET? В ASP.NET вы можете сделать это, как указано Вот.
вы не можете, драйверы есть. Единственный обходной путь, который я нашел, - если вы можете, сохраните его как csv и прочитайте его таким образом.
Вы можете сделать это только в 32-битной версии фреймворка. если это приложение ASP.net, вы можете изменить сервер, чтобы он запускался в 32-битной среде. Если это собственное приложение, вам придется перекомпилировать (хотя это, вероятно, лучше всего спросить в stackoverflow)
Я не пробовал, но по-видимому ключ / пассивная установка может быть обходным путем с 64-битный Ace.