是否有人有解决方案/链接将GridView / Datatable(Web应用程序aspx)的内容复制到剪贴板,以便我可以在Excel中粘贴?
我尝试过搜索但只找到了Forms应用程序的解决方案。
答案 0 :(得分:1)
这里有一些代码可以帮助你们将网格视图的数据放入剪贴板,这样就可以粘贴到Excel中了。
ClientScriptManager csm;
StringBuilder sb;
string stringToAppend;
int currentPage;
csm = Page.ClientScript;
sb = new StringBuilder();
// headers
foreach (DataControlField dcf in gvClass.Columns)
{
sb.Append(dcf.HeaderText + "\t");
}
sb.Append("\\n");
currentPage = gvClass.PageIndex;
for (int i = 0; i < gvClass.PageCount; i++)
{
gvClass_PageIndexChanging(null, new GridViewPageEventArgs(i));
foreach (GridViewRow gvr in gvClass.Rows)
{
foreach (TableCell tc in gvr.Cells)
{
if (tc.Controls.Count > 0)
{
stringToAppend = ((LinkButton)tc.Controls[0]).Text;
sb.Append(PRTL_UtilityPackage.FormatHtmlCharacters(stringToAppend) + " \t");
}
else
{
stringToAppend = tc.Text;
sb.Append(PRTL_UtilityPackage.FormatHtmlCharacters(stringToAppend) + " \t");
}
}
sb.Append("\\n");
}
}
gvClass_PageIndexChanging(null, new GridViewPageEventArgs(currentPage));
// Javascript that sets the clipboard to the stringbuilders value
csm.RegisterClientScriptBlock(typeof(Page), "copy",
"<script language=\"javascript\" type=\"text/javascript\"> " +
"window.clipboardData.setData(\"Text\", \"" + sb.ToString() + "\"); " +
"</script>");
答案 1 :(得分:0)
将内容复制到剪贴板的唯一可靠方法是使用Flash Player。这是一个开始:
http://beckelman.net/post/2009/01/22/Copy-to-Clipboard-with-ZeroClipboard-Flash-10-and-jQuery.aspx
答案 2 :(得分:0)
听起来你对gridview很困惑。它与你描述的内容无关。您需要谷歌如何使用C#将数据导出到Excel。您可以创建一个链接或按钮,说明下载excel文件,该按钮将与您的c#方法绑定。如果你在你的网站上使用这种方法,你可以做一次,并可能让它使用一个参数来确定它导出到excel的数据库表。
P.S。如果您正在寻找比gridview更多的功能,我建议您看一下我关于创建您自己的帖子的回答。 How to show pop up menu from database in gridview on each gridview row items?
您是否绝对需要将其复制到剪贴板?这可能是可能的,但需要大量编码。您正在谈论将数据粘贴到多个字段而不是一个字段中。我想你必须为excel创建一个扩展,知道剪贴板数据来自数据库表,并弄清楚如何填充工作表。