Ошибка «Не удалось найти устанавливаемый ISAM» при попытке анализа таблицы Excel - PullRequest
0 голосов
/ 17 января 2012

Я отправляю обратно файл xls и получаю сообщение об ошибке «Не удалось найти устанавливаемый ISAM» при заполнении адаптера. У меня офис 2007 32 битный, под управлением xp 64bit

ОБНОВЛЕНИЕ изменена строка подключения на 12,0 до 4,0 - та же проблема

  private string convertFileToPSV(HttpPostedFileBase file) {

        var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Source="+ fileName +";" +
                               "Extended Properties=\"Excel 8.0;HDR=YES;\"";

        var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1]", connectionString);
        var dt = new DataTable();

        adapter.Fill(dt);

        string psvSting = "";

        for (int i = 0; i < dt.Rows.Count; i++) {
            for (int j = 0; j < dt.Columns.Count; j++) {
                psvSting += "\"" + dt.Rows[i][j].ToString() + "\"|";
            }
        }

Ответы [ 4 ]

0 голосов
/ 07 января 2014

Я думаю, что мой вопрос может помочь вам.Это просто нужно два;в конце.

var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Source="+ fileName +";" +
                               "Extended Properties='Excel 8.0;HDR=YES;';";
0 голосов
/ 18 января 2012

Драйвер Jet - только x86.Если вы попытаетесь запустить его на ОС x64, он не будет работать.Убедитесь, что вы явно указали x86 в свойствах вашего проекта .NET, чтобы убедиться, что он загружает неуправляемую версию драйвера x86.

0 голосов
/ 18 января 2012

Попробуйте использовать "Data Source=" вместо "Source=".

var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                       "Data Source="+ fileName +";" +
                       "Extended Properties=\"Excel 8.0;HDR=YES;\"";
0 голосов
/ 17 января 2012

Как сказал Рон, драйвер БД, который вы выбрали, является драйвером доступа 2010. Если машина, на которой вы работаете, не имеет доступа 2010 ... она не будет работать. Как говорит Рон, вы можете скачать драйвер здесь

В качестве альтернативы вы можете попробовать Provider=Microsoft.Jet.OLEDB.4.0, так как это идет с XP и Vista, если вы используете Windows 7, вы должны использовать загрузку.

Версия Excel также должна соответствовать используемому вами Excel:

Excel 2003 Excel 8.0

Excel 2007/2010 Excel 12.0

В заключение ваша строка подключения должна выглядеть так:

var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + 
                           "Source="+ fileName +";" + 
                           "Extended Properties=\"Excel 12.0;HDR=YES;\""; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...