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