问题描述
我有一个现有代码,可从共享驱动器中读取excel文件并将数据导入sql(Windows应用-Visual Basic)。现在,Excel文件已移至 Sharepoint Online 位置-使用OleDbConnection和sqlBulkcopy的现有代码不起作用。即使设置了对Sharepoint的授权访问权限,我也完全无法连接到打开的excel文件。 在研究了替代方法后-我能够使用Microsoft.Office.Interop.Excel在Sharepoint上获取excel文件的工作表名称,但是仍然卡住了将每张工作表中的数据插入sql的过程,因为它使用了OleDbConnection来优秀。 excel文件很大,有多个页面,因此最好使用批量插入...请让我知道如何实现?
批量插入的原始代码(在ExcelConnection1.Open()上获取错误-“ IErrorInfo.GetDescription失败,并显示E_FAIL(0x80004005)。”)请注意,filNm-实际上是URL“ https:// Actual Sharepoint path / filename” .xlsx“
Dim ExcelStringNm As String = "Provider=Microsoft.ACE.OLEDB.16.0;" &
"Data Source=" & filNm & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"""
Dim ExcelConnection1 As New OleDb.OleDbConnection(ExcelStringNm)
For Cnt = 1 To SheetCnt
Select Case Cnt
Case 1 : SheetName = SheetName1
Case 2 : SheetName = SheetName2
Case 3 : SheetName = SheetName3
Case 4 : SheetName = SheetName4
Case 5 : SheetName = SheetName5
End Select
expr = "SELECT * FROM [" + SheetName + "]" + ";"
Dim objCmdselect As OleDbCommand = New OleDbCommand(expr,ExcelConnection1)
ExcelConnection1.open()
sqlconn.ConnectionString = ConnString
sqlconn.open()
Using bulkcopy As sqlBulkcopy = New sqlBulkcopy(sqlconn)
bulkcopy.DestinationTableName = TableNamesql
Try
objDR = objCmdselect.ExecuteReader
bulkcopy.WritetoServer(objDR)
objDR.Close()
sqlconn.Close()
ExcelConnection1.Close()
Catch ex As Exception
ExcelConnection1.Close()
sqlconn.Close()
End Try
End Using
Next
将xlWorkSheet设置为Microsoft.Office.Interop.Excel.Worksheet Dim xlApp作为新的Microsoft.Office.Interop.Excel.Application
xlApp.Workbooks.Open(filNm,True)
Dim strSheetName As New List(Of String)
For Each xlWorkSheet In xlApp.Sheets
strSheetName.Add(xlWorkSheet.Name)
Next
如何将xlWorksheet的每张表中的数据插入到sql中?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)