2011-11-17 56 views
1

任何人都可以建議我該如何操作,因爲我使用了Openrowset,但它沒有效果很好 工作表包含變量no列。從具有280列以上的特定Excel工作簿表格批量插入

 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。 大師請指導我。提前感謝您的幫助。

回答

2

是有點令人困惑 - 您正在訪問數據的文件格式是什麼?如果是舊的Excel 97-2003格式,您如何設置256列以上?如果它是2007或更高版本,爲什麼使用過時的OLE DB驅動程序?你有沒有試過Microsoft.ACE.OLEDB.12.0? (connectionstrings.com

+0

感謝哥們。我有大約250列。我設法逐個閱讀它。此外Microsoft.ACE.OLEDB.12.0是很好的建議.... – Vikky

相關問題