Asp.net 从gridview导出到Excel时的字符串格式
我已将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
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文件方面做得更好,可以在数量级上减少您的麻烦。它是免费的,即使是在商业环境中,所以当你使用它时也不会有问题。只是更好的结果