Mad*_* Zu 3 vb.net export-to-excel
我试图从excel中读取一些数据:
If (FileUpload1.PostedFile.ContentType = "application/vnd.ms-excel") Then
Dim filename As String = Path.GetFileName(FileUpload1.FileName)
'Session("userid") & "-" & Date.Now()
filepath = "\excel\" & Session("userid") & "_" & Now.Date().ToString("Mdy") & "_" & filename
FileUpload1.SaveAs(Server.MapPath("~/") & filepath)
ReadExcel(filepath)
Else
StatusLabel.Text = "Only Excel file types are accepted"
End If
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好,除非其中一列有时读入为NULL.如果它是一个不同的类型,似乎会发生这种情况.我无法弄清楚它是什么.有人帮我请....
Sub ReadExcel(ByVal filepath As String)
Dim MyConnection As System.Data.OleDb.OleDbConnection
Dim DtSet As System.Data.DataSet
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & Server.MapPath("~/") & filepath & "';Extended Properties=Excel 8.0;")
DtSet = New System.Data.DataSet
Try
MyCommand.Fill(DtSet)
'gwResults.DataSource = DtSet.Tables(0)
LoopSources(DtSet)
'gwResults.DataBind()
MyConnection.Close()
Catch ex As Exception
StatusLabel.Text = "Import Excel status: The file could not be loaded. The following error occured: <br>" + ex.Message
End Try
End Sub
Run Code Online (Sandbox Code Playgroud)
您需要Extended Properties="Excel 8.0;IMEX=1;"
在连接字符串中包含.Excel尝试通过读取前几行来确定列的数据类型.一旦它认为它知道数据类型,任何不符合该类型的东西都被强制为NULL.很烦人. IMEX=1
告诉它将您的数据作为混合读取,并应解决您的问题.如果您有标题行,则还应考虑包括HDR=YES
.有关详细信息,请参阅此链接:http://www.connectionstrings.com/excel.