Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 импорт из Экселя  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Делаю импорт из Экселя, создал linkedserved
делаю запрос через openrowset, ошибка
The OLE DB provider "Provider=Microsoft.Jet.OLEDB.4.0" has not been registered.
попытался через linkedserved ошибка:
OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "EX" returned message "Could not find installable ISAM.".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "EX".

хотя dts пакеты работают, я строку подключения оттуда полностью взял.
хотел устаовить драйвера jet, нашел только русский, может даст кто нибудь ссылку на английские?
17 янв 12, 16:15    [11919033]     Ответить | Цитировать Сообщить модератору
 Re: импорт из Экселя  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
хотя в списке провайдеров есть jet.oledb.4.0
17 янв 12, 16:23    [11919139]     Ответить | Цитировать Сообщить модератору
 Re: импорт из Экселя  [new]
Glory
Member

Откуда:
Сообщений: 104751
А опубликовать полную версию сервера как всегда времени не хватило ?
17 янв 12, 16:24    [11919159]     Ответить | Цитировать Сообщить модератору
 Re: импорт из Экселя  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Glory,

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) Apr 2 2010 15:53:02 Copyright (c) Microsoft Corporation Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2)
17 янв 12, 16:30    [11919240]     Ответить | Цитировать Сообщить модератору
 Re: импорт из Экселя  [new]
Glory
Member

Откуда:
Сообщений: 104751
А наличие провайдера определялось через sys.sp_enum_oledb_providers ?
17 янв 12, 16:36    [11919325]     Ответить | Цитировать Сообщить модератору
 Re: импорт из Экселя  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
да, он там есть.
запрос делаю к файлу C:\otchet.xls, у которого есть шапка , мне надо получать данные с 15 строки
если делать запрос такого вида
SELECT * FROM OPENROWSET('MSDASQL',
'Driver={Microsoft Excel Driver (*.xls)};
DBQ=[C:\otchet1.xls]', 'SELECT * FROM [Sheet1$]')
то запрос работает

C:\otchet1.xls- файл без шапки
выше запросы сделаны как к файлу с шапкой , так и без шапки.
делал через odbc драйвер, там в драйвере если не ошибаюсь можно было указать с какой строки считывать данные , то ошибка
Msg 7350, Level 16, State 2, Line 1
Cannot get the column information from OLE DB provider "MSDASQL" for linked server "EXCEL".
т.е к файлу подключается, но не может прочитать даные и их тип,т е. видно шапка эта мешает.
как в запрос к экселю добавить что-то вроде Range("A8:D22").Select, т.е выборки диапазона строк?
17 янв 12, 16:56    [11919555]     Ответить | Цитировать Сообщить модератору
 Re: импорт из Экселя  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
пока появилась мысль, т.к скорее всего этот импорт будет постояный, сделать в пакете SSIS вначале VBS скрипт, который удаляет шапку, затем делать импорт tsk-ом без проблем.
но все таки хотел узнать , как-нибудь можно отправить запрос в эксель на получение данных диапозона строк экселя?
17 янв 12, 17:13    [11919737]     Ответить | Цитировать Сообщить модератору
 Re: импорт из Экселя  [new]
Konst_One
Member

Откуда:
Сообщений: 11625
если только в вашем файле экселе сделать нужный вам диапазон именованным
17 янв 12, 17:18    [11919785]     Ответить | Цитировать Сообщить модератору
 Re: импорт из Экселя  [new]
Glory
Member

Откуда:
Сообщений: 104751
Select * from [Sheet1$A8:D22] ???
17 янв 12, 17:21    [11919800]     Ответить | Цитировать Сообщить модератору
 Re: импорт из Экселя  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Glory,
да спасибо, работает.

хотя есть одно но, кол-во строк может быть разное, но пока указал в запросе A8:D10000, вроде не должно быть такого файла со столькими строками.

а я пытался что-то вроде [sheet$].Range("A8:D22")
17 янв 12, 17:53    [11920103]     Ответить | Цитировать Сообщить модератору
 Re: импорт из Экселя  [new]
AndreTM
Member

Откуда: Где-то в вологодских лесах...
Сообщений: 6900
А попробовать Select * from [Sheet1$A$8:$D] нельзя?
17 янв 12, 22:26    [11921489]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить