Драйвер ACE работает в VBA, но не в C #. Почему? - PullRequest
0 голосов
/ 29 октября 2019

Я хочу знать, почему драйвер ACE работает в VBA, когда я хочу прочитать файл Excel (VBA), но не удается, когда я пробую его в Visual Studio Code (C #).

Я знаю, что вам нужноустановить Access Runtime для получения драйверов ACE, но это невозможно без прав администратора. Я также знаю, что вы можете использовать Interop для чтения файлов Excel с C #. Я просто хочу понять, почему в основном тот же код в VBA работает, но не работает в C #.

Это работает в VBA:

connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & filePath & _
      "; Extended Properties='Excel 12.0 Xml;HDR=YES';"
    connection.Open connString

Но это не работает в C #:

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + @";Extended Properties='Excel 12.0;HDR=Yes;'";  
using(OleDbConnection connection = new OleDbConnection(connectionString))
{
   connection.Open();
}

Когда я запускаю C #, я получаю, что поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на ошибке локального компьютера »

Я имел дело с этой проблемой раньше, нолюбить кого-то, кто понимает это лучше, чтобы помочь. Это ссылка ActiveX в Excel? Могу ли я получить к нему доступ без использования Interop?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...