Массовая вставка из специального листа книги Excel, содержащего более 280 столбцов - PullRequest
1 голос
/ 17 ноября 2011

может кто-нибудь подсказать мне, что делать, когда я использовал Openrowset, но он не работал хорошо лист содержит переменную № столбцов.

        Dim sConnectionString1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & exfname & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
        Dim con As New OleDbConnection(sConnectionString1)
        objCmdSelect = New OleDbCommand("SELECT  * FROM [sheet 12$]", con)


        Dim dr_x As OleDbDataReader
        con.Open()
        dr_x = objCmdSelect.ExecuteReader()
        con.Close()

Это хорошо работает при наличии около 240 столбцов, но если оно превышает 256, это дает ошибку и соединение не будет открыто. Поэтому я решил использовать массовую вставку во временную таблицу, любой может посоветовать, как выполнить массовую вставку из определенного листа рабочей книги Я пытался

select *   into test1 from (
select * from OpenRowset(
 'Microsoft.Jet.OLEDB.4.0',
 'Excel 8.0;Database=C:\Documents and Settings\VIKKY\My Documents\Downloads\alvin\xyz.xls',
 'select * from [sheet12$]')) a 

Но это не работает, когда число столбцов превышает, но хорошо работает на SQL, когда столбцы меньше. Мастера, пожалуйста, ведите меня. Заранее спасибо за помощь.

1 Ответ

2 голосов
/ 17 ноября 2011

Это немного сбивает с толку - из какого формата файла вы получаете доступ к данным? Если это старый формат Excel 97-2003, как вам удается иметь более 256 столбцов? Если это 2007 или более поздняя версия, почему вы используете устаревший драйвер OLE DB? Вы пробовали Microsoft.ACE.OLEDB.12.0? ( connectionstrings.com )

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