将Datagrid数据导出到.csv文件 [英] Export Datagrid data to .csv file

查看:93
本文介绍了将Datagrid数据导出到.csv文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,先生/女士,
首先,我将数据绑定到datagrid中,此数据显示在.csv文件中,该怎么做?我正在尝试,但是如果长文本在csv文件中的时间显示在datagrid中,则需要2或3行,但是我的目标是,如果用户此时输入长文本,它也将以单行显示.
并且如果我在那个时候在写字板中打开这个csv文件,它也会在最后一列显示逗号.我的目标是最后一列不显示逗号.

我的代码:

Hi Sir/Madam,
First I bind a data into datagrid, this data is displayed in .csv file how to do this? I am try but if long text is displayed in datagrid that time in csv file it take 2 or 3 lines but my aim is if user enter long text that time also it display in single line.
And if i open this csv file in wordpad that time it display comma to last column also. My aim is comma is not displayed for last column.

My code:

Private Function ToCSV(ByVal dataTable As DataTable) As String 
Dim sb As New StringBuilder() 
If dataTable.Columns.Count <> 0 Then 
For Each column As DataColumn In dataTable.Columns 
sb.Append("," & column.ColumnName) 
Next 
sb.Remove(0, 1) 
sb.Append(vbCr & vbLf) 
For Each row As DataRow In dataTable.Rows 
For Each column As DataColumn In dataTable.Columns 
sb.Append(row(column).ToString() + ","c) 
Next 
sb.Append(vbCrLf) 
Next 
End If 
Return sb.ToString() 
End Function 


然后在按钮中单击
''//在这里我绑定了datagrid
然后


and in button click
''// here i bind datagrid
and then

Response.ContentType = "Application/x-msexcel" 
Response.AddHeader("content-disposition", "attachment;filename=Reports.csv") 
Response.Write(ToCSV(tdata)) 
Response.[End]() 



请帮帮我.
谢谢.



Please help me.
Thanks.

推荐答案

尝试像这样修改ToCSV()函数:
Try modifying your ToCSV() function like this:
Private Function ToCSV(ByVal dataTable As DataTable) As String
    Dim sb As New StringBuilder()
    If dataTable.Columns.Count <> 0 Then
        For Each column As DataColumn In dataTable.Columns
            sb.Append("," & column.ColumnName)
        Next
        sb.Remove(0, 1)
        sb.Append(vbCr & vbLf)
        For Each row As DataRow In dataTable.Rows
            For I As Integer = 0 To dataTable.Columns.Count - 1
                Dim column As DataColumn = dataTable.Columns(I)
                If I <> dataTable.Columns.Count - 1 Then
                    sb.Append(row(column).ToString() + ","c)
                Else
                    sb.Append(row(column).ToString())
                End If
            Next
            sb.Append(vbCrLf)
        Next
    End If
    Return sb.ToString()
End Function


这篇关于将Datagrid数据导出到.csv文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆