Asp.net 从gridview导出到Excel时的字符串格式

Asp.net 从gridview导出到Excel时的字符串格式,asp.net,vb.net,excel,gridview,string-formatting,Asp.net,Vb.net,Excel,Gridview,String Formatting,我已将Gridview数据导出到excel,以下是我的代码: Protected Sub btnExport_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExport.Click Try Dim dt As New DataTable If CReversal.SearchReversal2(txtAccount.Text, txtCu

我已将Gridview数据导出到excel,以下是我的代码:

 Protected Sub btnExport_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExport.Click
        Try
            Dim dt As New DataTable
            If CReversal.SearchReversal2(txtAccount.Text, txtCustName.Text, txtAmount.Text, dropResponse.SelectedValue.ToString, txtRefNo.Text, txtDate.Text) Then
                dt = CReversal.DT
            Else
                eMessage("System failure: ", CReversal.eMsg)
            End If
            Dim DataGrd As New DataGrid()
            DataGrd.DataSource = dt.DefaultView
            DataGrd.DataBind()

            Dim attachment As String
            attachment = "attachment; filename=Inquiry_Report" & Format(Now, "ddMMMyyyy") & ".xls"
            Response.Buffer = True
            Response.ClearContent()
            Response.ClearHeaders()
            Response.AddHeader("content-disposition", attachment)
            Response.ContentType = "application/ms-excel"
            Dim sw As New StringWriter()
            Dim htw As New HtmlTextWriter(sw)
            DataGrd.RenderControl(htw)
            Response.Write(sw.ToString())
            Response.End()
        Catch ex As Exception
            eMessage("Export Data failure: ", ex.ToString())
        End Try

    End Sub
导出过程按我的要求运行。但是当我打开excel文件时,我得到了一些字符串数字字符,如下所示:

但实际上datagridvie的显示是这样的:


当我们要以编程方式导出到excel时,是否可以格式化字符串数字字符?thk您

您的方法的问题是,您没有编写“真实”的excel数据。这是一个html表格,excel可以读取它,但您无法真正影响excel读取这些数据的方式。像EPPLus这样的库在编写excel文件方面做得更好,可以在数量级上减少您的麻烦。它是免费的,即使是在商业环境中,所以当你使用它时也不会有问题。只是更好的结果


附带说明:Epplus支持“LoadFromDataTable”方法——幸运的是,您所需要的只是…

我发现,在Excel中,如果您需要一个与输入的数字完全相同的数字,请在数字正确显示之前加一个撇号
'
。有什么方法可以通过编程实现吗?如何编写Excel?您的问题是由excel引起的,它将某些数字转换为这样的格式。您的数字应该写为一个文本单元格,因此Excel会显示原始文本,不管是什么。如果您使用像EPPLUS这样的免费excel库,这非常容易,但是如果您使用csv,这几乎是不可能的。@ChristianSauer我从数据表中获取值,然后编写excel,就像我上面写的那样,我试图避免使用外部库。您的方法的问题是,您没有编写“真实”的excel数据。这是一个html表格,excel可以读取它,但您无法真正影响excel读取这些数据的方式。像EPPLus这样的库在编写excel文件方面做得更好,可以在数量级上减少您的麻烦。它是免费的,即使是在商业环境中,所以当你使用它时也不会有问题。只是更好的结果