复制粘贴gridview asp.net

时间:2010-12-31 15:03:19

标签: asp.net vb.net gridview copy-paste

如何从gridview(asp.net)复制(右键单击)某些列并将其粘贴到excel中?当我尝试使用excel中粘贴的所有数据时,我得到一行,它应该与gridview位于相同的列和行中。

谢谢

3 个答案:

答案 0 :(得分:2)

好的,谢谢。我做了一个按钮并将其导出到csv文件。下面的代码完成了这项工作。

  Private Sub ExportGrid(ByVal gridname As String)
    Dim kolonner As Integer
    If gridname.ToString = GridView1.ToString Then
        kolonner = 5
    Else
        kolonner = 10
    End If

    'Lav DT 
    Dim dtUse As DataTable = New DataTable
    If gridname = "GridView1" Then
        dtUse = dt2.Copy()
    Else
        '  dtUse = dt2.Copy
    End If

    Response.Clear()
    Response.Buffer = True
    Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.csv")
    ' Response.Charset = "System.Text.Encoding.Default"
    Response.Charset = ""
    Response.ContentEncoding = System.Text.Encoding.Default
    'text/html
    'Response.ContentType = "System.Text.Encoding.Default"
    Response.ContentType = "text/html"

    Dim sb As New StringBuilder()
    For Each clm As DataColumn In dtUse.Columns
        sb.Append(clm.ColumnName.ToString + ";"c)
    Next
    'append new line
    sb.Append(vbCr & vbLf)

    Dim tt As String = sb.ToString

    For Each row As DataRow In dtUse.Rows
        For Each CLM2 As DataColumn In dtUse.Columns
            'add separator
            sb.Append(row(CLM2).ToString + ";"c)
        Next
        'append new line
        sb.Append(vbCr & vbLf)
    Next
    Response.Output.Write(sb.ToString())
    Response.Flush()
    Response.End()

End Sub

答案 1 :(得分:1)

为什么不尝试使用自定义上下文菜单,例如“导出到Excel”,并为其编写代码。 在您的代码中,连续获取所有值,并用逗号分隔(制作 csv 格式化的行),然后在每行中添加"\r\n"

数据将采用以下格式。

col1 , col2 , col3 \r\n
data1, data2 data3 \r\n
data1, data2 data3 \r\n
data1, data2 data3 \r\n
data1, data2 data3 \r\n

这样它将被正确格式化以便在Excel中导出。只需将最终字符串添加到剪贴板。

答案 2 :(得分:-1)

人们不要复制粘贴整个GridView 这很乏味且容易出错 作为程序员,你有责任为他们做这件事 在GridView的顶部放置一个很好的Export to Excel Button