【问题标题】:String Format when Export to Excel From gridview从gridview导出到Excel时的字符串格式
【发布时间】:2013-05-30 08:54:29
【问题描述】:

我已将 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时,是否可以格式化字符串数字字符?谢谢你

【问题讨论】:

  • 我发现在 Excel 中,如果您需要一个数字以完全按照输入的方式显示,请在数字前加上撇号 ' 以使其正确显示。
  • 有没有办法以编程方式做到这一点?
  • 如何写入 Excel?您的问题是由 excel 引起的,它将某些数字转换为此类碳水化合物。你的数字应该写成文本单元格,因此 Excel 无论如何都会显示原始文本。如果您使用像 EPPLUS 这样的免费 excel 库之一,这非常容易,但如果您使用 csv,则几乎不可能。
  • @ChristianSauer 我从数据表中获取值,然后编写excel,就像我上面写的一样,我尽量避免使用外部库。
  • 您的方法的问题是,您没有编写“真实”的 Excel 数据。这是一个可以被 excel 读取的 html 表,但是你并不能真正影响 excel 读取这个烂摊子的方式。像 EPPLus 这样的库在编写 excel 文件方面要好得多,并且可以将您的头痛减少几个数量级。它是免费的,即使在商业环境中也是如此,所以使用它时没有问题。只是更好的结果

标签: asp.net vb.net excel gridview string-formatting


【解决方案1】:

您的方法的问题是,您没有编写“真实”的 Excel 数据。这是一个 html 表格,可以通过 excel 读取,但您并不能真正影响 excel 读取这种混乱的方式。像 EPPLus 这样的库在编写 excel 文件方面要好得多,并且可以将您的头痛减少几个数量级。它是免费的,即使在商业环境中也是如此,所以使用它时没有问题。只是更好的结果

附带说明:Epplus 支持“LoadFromDataTable”方法 - 运气好的话,您只需要...

【讨论】:

    猜你喜欢
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 2022-08-11
    相关资源
    最近更新 更多