在xls文件上加载上传文件错误

阿卜杜勒

我有一个文件上传功能,可以在GridView中加载该文件。当我选择一个excel文件并单击“上传”按钮时,文件上传到目录,但加载时出现以下错误。对于.txt文件,它可以正常工作在此处输入图片说明

  Private Function UploadCSVFile() As String
    Try

        If fileCSV.HasFile Then
            strFileName = fileCSV.FileName
            hdnFileName.Value = fileCSV.FileName
            fileCSV.SaveAs(Server.MapPath(strDirectory) & strFileName)
            Call LoadData(strFileName)        //  Gives error in this function
            lblImportMsg.Text = "File saved succesfully!"
        End If

        Return strFileName

    Catch ex As Exception
        lblImportMsg.Text = ex.ToString
        Return "None"
    End Try

End Function


Private Sub LoadData(ByVal strFileName As String)
    If Not strFileName = "" Then
        ds = New DataSet
        Dim strFilePath As String = Server.MapPath(strDirectory) '& strFileName
        Dim cnn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFilePath & ";Extended Properties=Text;")
        Dim da As New OleDb.OleDbDataAdapter("Select * from [" & strFileName & "]", cnn)
        da.Fill(ds)
        gvFileInfo.DataSource = ds.Tables(0)
        gvFileInfo.DataBind()
    End If
End Sub
穴居人

xls文件可以解释为文本文件,csv文件(带逗号的文本)。但是XLSX有所不同。如果将.xlsx替换为.zip,您会看到(winzip,winrar。atc)内部文件很多……这是Office Open XML SpreadsheetML文件格式。

https://msdn.microsoft.com/zh-CN/library/dd922181(v=office.12).aspx

要打开XLSX文件,请尝试另一个连接字符串,如下所示:

Dim cnn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Path_to_your_file.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1'")
Dim ds As New DataSet
Dim da As New OleDb.OleDbDataAdapter("Select * from [Sheet1$]", cnn)
da.Fill(ds)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章