Нет microsoft excel driver

А знаете ли вы, что имея 64-битную операционную систему и 32-битный Microsoft Office, вы не сможете простыми стандартными манипуляциями настроить ODBC источник данных (data source)? Например, на таблицы Excel — что, в общем-то, не такая уж и редкость.
Если вы пойдете как обычно в Панель управления / Администрирование / Источники данных ODBC (Control Panel / Administrative Tools / Data Sources (ODBC)), то вы не увидите перечня ODBC драйверов MS Office, даже если они были установлены. В лучшем случае могут затесаться какие-то 64-битные драйвера, установленные с какими-то другими оснастками:

А чтобы всё-таки поработать с 32-битными драйверами ODBC нужно запускать 32-битную версию утилиты управления ODBC (ODBC Data Source Administrator) вот такой командой:
%windir%SysWOW64odbcad32.exe

В общем-то, логично. Но почему не вывести обе утилиты в панели управления?! как это сделано в Windows 8.1, кстати.

Информация есть здесь:
Unable to create DSN for Microsoft Office System Driver on 64-bit versions of Windows
No ODBC Drivers available for Excel or Access in Windows 7 ?!

Hi,

I tried using the 32-bit Office System driver (ODBC Administrator tool in %windir%SysWOW64odbcad32.exe) to build an ODBC data source but the Excel driver for .xlsx files is missing. I looked in the regular System Administrator’s ODBC Data Source Administration
and even the 64-bit version — and they are also missing the current Excel driver.

I’m running a 64-bit Windows system and 32-bit Office. I don’t get any error messages, aside from the one I get eventually on the Excel 97-2003 file (.xls) that I’m currently using for my ODBC database (since that’s the only Excel driver available in the
all 3 available ODBC Administrator tools). The error message there says the file is corrupted and can’t be accessed and it happens after I’ve created the ODBC database and used it less than 10 times. 

I’ve already tried the information in the following threads without any luck:
http://answers.microsoft.com/en-us/office/forum/office_2007-excel/no-odbc-drivers-available-for-excel-or-access-in/001c234b-dfd5-4378-a325-c4f1482fb6fd?auth=1

https://support.microsoft.com/en-us/kb/2721825/en-us

Can I install new ODBC drivers? The .xlsx compatible one? According to the ODBC Data Source Administrator tool (from the SysWOW64 folder, not the administrator tools), under the Drivers tab, it says «To install new drivers, use the driver’s setup program.»
Where is the driver’s setup program? 

Please help, thanks!

RRS feed

  • Remove From My Forums
  • Question

  • Hi Guys,

    Where can i download the Microsoft Excel Driver (*.xls, *.xlsx, *.xslm, *.xlsb)’

    Currently i only have Microsoft Excel Driver (*.xls) and i need to add the xlsx format too.

All replies

  • Hi,

    I’m afraid you are mixed up something.  «*.xls», «*.xlsx», «*.xslm», «*.xlsb» is not a driver, but only an extension or a part of file name.
    So, you don’t have to download driver, only need to install Excel in your computer.  If Excel is installed, you can open, read/write, and save «*.xls», «*.xlsx», «*.xslm», «*.xlsb» file.

    If I misunderstand your question, please provide what you want to do after download the Microsoft Driver (using your words).

    Regards,


    Ashidacchi

    • Edited by

      Wednesday, September 6, 2017 10:05 PM

    • Proposed as answer by
      Emi ZhangMicrosoft contingent staff
      Tuesday, September 12, 2017 1:36 AM
  • I think you are looking for Runtime environment for accessing Excel. Please install this:

    https://www.microsoft.com/en-us/download/details.aspx?id=50040

   LevelUP

02.02.17 — 12:43

Здравствуйте.

Раньше в х32 1С открывал Excel таким кодом

Стр_Конект = «Driver={Microsoft Excel Driver (*.xls)};

            |DriverId=790;

            |Dbq=»+Стр_Файл+»;

            |DefaultDir=»+Стр_Путь+»;»;

            Об_Конект = Новый COMОбъект(«ADODB.Connection»);

            Попытка

                Об_Конект.Open(Стр_Конект);          

            Исключение

                Сообщить («Невозможно подключится к Microsoft Excel Driver!!!

                |Возможно файл [«+Стр_Файл+»] открыт другим пользователем.»);

                Возврат;

            КонецПопытки;

Теперь выдает ошибку на этапе Об_Конект.Open(Стр_Конект);

Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Excel] Файл ‘(нет данных)’ не может быть открыт ядром базы данных Microsoft Jet.  Файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных.

Куда копать? Что подправить в строке коннекта?

   shuhard

1 — 02.02.17 — 13:10

(0) ODBC тут лишнее

MyCon = Новый COMОбъект («ADODB.Connection»);

    Попытка

                
        MyCon.Open («Provider=Microsoft.ACE.OLEDB.12.0;Data Source=»+ОБъект.ПутьКфайламБюджета+»;Extended Properties=»»Excel 12.0;HDR=Yes;IMEX=1;»»»);

        
    Исключение

        Сообщить(«Не удалось открыть файл->»+ОБъект.ПутьКфайламБюджета+» Проверьте путь и тип файла»);

        Сообщить(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));

        Возврат;    

    КонецПопытки;

   LevelUP

2 — 02.02.17 — 13:46

(1)Спасибо. На х32 код работает, а на х64 нет.

Ругается

Произошла исключительная ситуация (Microsoft OLE DB Service Components): Заглушке переданы неправильные данные.

Может что-то кроме Microsoft.ACE.OLEDB.12.0 надо в com+ прописать?

   NorthWind

3 — 02.02.17 — 13:51

(2) а драйвер ACE х64 скачан и установлен?

   LevelUP

4 — 02.02.17 — 13:53

(3) я в службе компонентов его com+ сопоставил по типу Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С. Без этого ругался на Provider=Microsoft.ACE.OLEDB.12.0.

Теперь вот на заглушку

   aka AMIGO

5 — 02.02.17 — 14:14

Извините, а в файловом варианте эта штука не работает?

   LevelUP

6 — 02.02.17 — 14:16

(5) у меня файловый вариант как раз

   aka AMIGO

7 — 02.02.17 — 14:20

(6) У меня как раз 64.

Попробовал и я, тоже не срабатывает. Причина другая.

Сообщений 2:

Не удалось открыть файл->C:DBАзыExtRepsPL VAP FY17.xlsx Проверьте путь и тип файла

Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.

Но у меня нет ACE

   aka AMIGO

8 — 02.02.17 — 14:22

(6) может тебе поможет: http://www.cyberforum.ru/ado-net/thread125575.html

Я в этом плаваю по-топорному.

   aka AMIGO

9 — 02.02.17 — 14:28

(0) чем вызвана необходимость использовать этот «Driver» ?

Нет Excel»я ?

   LevelUP

10 — 02.02.17 — 14:29

(8) ну драйвер похоже ставить надо Microsoft.ACE.OLEDB.12.0 х64. Но для этого надо офис снести х32, неохота.

Через обертку com+ избавился от ошибки «поставщика». Но появились другие.

   aka AMIGO

11 — 02.02.17 — 14:30

(10) Понял..

   LevelUP

12 — 02.02.17 — 14:30

(9) Да, изначально у заказчика не было Екселя. Но сейчас уже есть, поэтому переписываю обработку под Excel.application

   aka AMIGO

13 — 02.02.17 — 14:41

А так не пойдёт? Поскольку Excel установлен..

    Попытка

        Excel = Новый COMОбъект(«Excel.Application»);

    Исключение

        Сообщить(«Не найден Microfoft Excel.»);

        Возврат Ложь;

    КонецПопытки;

    
    Попытка

        WorkBook = Excel.WorkBooks.Open(ФайлExcel );

    Исключение

        Сообщить(«Excel не удалось открыть файл » + ФайлExcel );

        Возврат Ложь;

    КонецПопытки;

    
    ТекЛист=Excel.WorkSheets(1);

   aka AMIGO

14 — 02.02.17 — 14:42

+13 или ты под это и пишешь?

   DailyLookingOnASunse

15 — 02.02.17 — 14:49

Платформа какая?

С 8.3.6 уже можно этим пользоваться:

ДанныеФайлаТабличныйДокумент = Новый ТабличныйДокумент;

ДанныеФайлаТабличныйДокумент.Прочитать(ИмяВремФайла);

   LevelUP

16 — 02.02.17 — 14:57

(13) да, так и переписываю. Подумал, что быстрее переписать, чем разбираться с ADO.

  

LevelUP

17 — 02.02.17 — 15:01

(15)платформа 8.3.9 х64. Хороший способ, надо попробовать, без всяких COM и определений количества строк и колонок. Спасибо!

  • Remove From My Forums
  • Вопрос

  • I am trying to access a spreadsheet that is currently homed on a Server that doesn’t have excel installed on it…however it has an excel driver (Microsoft Excel Driver .xls). I am running Office 2013 on my computer that
    I am using to pull the spreadsheet onto. I need to find the correct driver to be able to open and make changes to the spreadsheet…Please help!

    • Перемещено

      6 ноября 2013 г. 6:16
      ODBC issue

Ответы

  • Hello,

    From your description, if I understand correctly, you want to know how to read excel file.

    For this, my suggestion is to use the OleDb, we just need to install the
    Microsoft Access Database Engine

    And for how to read excel file using OleDb, there is a sample for it:

    DataTable dt = new DataTable();
    
    
                OleDbConnection objOleDbCon = null;
    
                DataTable dtSheetName = new DataTable();
    
    
                string filePath = "E:\BMX\Lab\TestLab\WindowsFormsApplication1\ADONET\DataSource.xlsx";
    
    
                string fileExt = System.IO.Path.GetExtension(filePath);
    
                string fileName = System.IO.Path.GetFileName(filePath);
    
                OleDbCommand objOleDbCmd = new OleDbCommand();
    
                OleDbDataAdapter objOleDbDataAdapter = new OleDbDataAdapter();
    
                DataTable dtExcelData = new DataTable();
    
    
                string xConnStr = "";
    
    
                if (fileExt.ToLower() == ".xls")
    
                {
    
    
                    xConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"";
    
                }
    
                else if (fileExt.ToLower() == ".xlsx")
    
                {
    
                    xConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"";
    
                }
    
    
                objOleDbCon = new OleDbConnection(xConnStr);
    
                objOleDbCon.Open();
    
                try
    
                {
    
                    objOleDbCmd = new OleDbCommand("SELECT * FROM [" + "Course" + "$]", objOleDbCon);
    
                    objOleDbDataAdapter = new OleDbDataAdapter(objOleDbCmd);
    
                    objOleDbDataAdapter.Fill(dt);
    
    
                }
    
                catch (Exception ex)
    
                {
    
                    throw ex;
    
                }
    
                finally { objOleDbCon.Close(); }
    
    
                return dt;
    

    If I have misunderstood, please let me know.

    Regards.


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.

    Click
    HERE to participate the survey.

    • Помечено в качестве ответа
      Fred Bao
      14 ноября 2013 г. 9:48

Понравилась статья? Поделить с друзьями:
  • Нет kbcnjd в excel
  • Нет inquire в excel
  • Нет immediate в excel
  • Нет excel на компьютер бесплатно
  • Нет excel во вкладке создать