Импорт Excel 2007 в SQL 2000 с использованием Classic ASP и ADO - PullRequest
1 голос
/ 28 апреля 2010

У меня есть следующий код из унаследованного приложения, которое в настоящее время читает из электронной таблицы Excel 2003 на сервере, но мне нужно, чтобы он запускался с моей машины, которая использует Excel 2007. Когда я отлаживаю на своей машине, ADO, кажется, нечтение электронной таблицы.

Я проверил все пути к файлам и т. д., а также расположение электронной таблицы, с которой все в порядке.Я слышал, что вы больше не можете использовать реактивный двигатель для Excel 2007?Кто-нибудь может это подтвердить?Что мне нужно сделать, чтобы заставить это работать?

set obj_conn = Server.CreateObject("ADODB.Connection")
obj_conn.Open   "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Application("str_folder") & "CNS43.xls;" & _
            "Extended Properties=""Excel 8.0;"""
set obj_rs_cns43 = Server.CreateObject("ADODB.RecordSet")
obj_rs_cns43.ActiveConnection = obj_conn
obj_rs_cns43.CursorType = 3
obj_rs_cns43.LockType = 2
obj_rs_cns43.Source = "SELECT * FROM [CNS43$]"
obj_rs_cns43.Open

Ответы [ 3 ]

1 голос
/ 28 апреля 2010

Попробуйте изменить строку подключения следующим образом ( исходная статья ):

obj_conn.Open   "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 
            "Data Source=" & Application("str_folder") & "CNS43.xls;" & _ 
            "Extended Properties=""Excel 12.0;""" 
0 голосов
/ 19 мая 2010

Я решил эту проблему, проблема была связана с совместимостью 64-битной ОС с драйверами Microsoft Ace. Чтобы отладить это, вы должны принудительно отладить Visual Studio с помощью 32-битного менеджера конфигурации отладки.

0 голосов
/ 28 апреля 2010

Вы всегда можете использовать Excel Automation для чтения из Excel. Но я думаю, что это План Б.

Лучшим решением для этой проблемы будет Openrowset . Не требуется ASP, только чистый SQL.

Вот статья "Ближе к Excel"

...