从Excel电子表格填充文本框

时间:2018-11-05 10:55:06

标签: asp.net .net vb.net

我正在尝试使用vb.net从Excel工作表中填充文本框字段。

我有以下代码:

  <asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" 
            Height="21px" Text="Upload" 
            Width="92px" onclick="btnUpload_Click"/>
</div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>

使用Fileupload,用户可以上传excel工作表,然后该工作表将提取信息以填充某些字段。

我的第一步是尝试将其与我没有运气的按钮单击时的网格视图进行数据绑定:使用以下方法:

 Protected Sub btnUpload_Click(sender As Object, e As EventArgs)

    Dim connectionString As String = ""
    If FileUpload1.HasFile Then
        Dim fileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
        Dim fileExtension As String = Path.GetExtension(FileUpload1.PostedFile.FileName)
        Dim fileLocation As String = Server.MapPath("~/App_Data/" & fileName)
        FileUpload1.SaveAs(fileLocation)

        'Check whether file extension is xls or xslx

        If fileExtension = ".xls" Then
            connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fileLocation & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=2"""
        ElseIf fileExtension = ".xlsx" Then
            connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & fileLocation & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=2"""
        End If

        'Create OleDB Connection and OleDb Command

        Dim con As New OleDbConnection(connectionString)
        Dim cmd As New OleDbCommand()
        cmd.CommandType = System.Data.CommandType.Text
        cmd.Connection = con
        Dim dAdapter As New OleDbDataAdapter(cmd)
        Dim dtExcelRecords As New DataTable()
        con.Open()
        Dim dtExcelSheetName As DataTable = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
        Dim getExcelSheetName As String = dtExcelSheetName.Rows(0)("Table_Name").ToString()
        cmd.CommandText = "SELECT * FROM [" & getExcelSheetName & "]"
        dAdapter.SelectCommand = cmd
        dAdapter.Fill(dtExcelRecords)
        con.Close()
        GridView1.DataSource = dtExcelRecords
        GridView1.DataBind()
    End If
End Sub

我收到错误消息“拒绝访问路径'C:\ inetpub \ wwwroot \ Portal \ docs \ Encoding_Time.csv'。 ”,这让我问文件上传控件将文件保存在哪里?

更新:我现在收到以下错误“ ConnectionString属性尚未初始化。”

0 个答案:

没有答案