读书人

ASP.NET EXCEL导出的有关问题,高手帮一

发布时间: 2012-03-07 09:13:51 作者: rapoo

ASP.NET EXCEL导出的问题,高手帮一下忙.
<%@ Page Language= "C# " AutoEventWireup= "true " CodeFile= "Default.aspx.cs " Inherits= "_Default " %>

<%@ Register Assembly= "WFNetCtrl " Namespace= "WFNetCtrl " TagPrefix= "cc1 " %>


<html xmlns= "http://www.w3.org/1999/xhtml " >
<head runat= "server ">
<title> 无标题页 </title>
</head>
<body>
<form id= "form1 " runat= "server ">
<asp:Button ID= "Button2 " runat= "server " OnClick= "Button2_Click " Text= "Button " />
<asp:Button ID= "Button1 " runat= "server " OnClick= "Button1_Click " Text= "Button " />  
<asp:GridView ID= "GridView1 " runat= "server ">
</asp:GridView>
</form>
</body>
</html>


protected void Button2_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "gb2312 ";
Response.AppendHeader( "content-disposition ", "attachment;filename=filename.xls ");
// 如果设置为 getencoding( "gb2312 ");导出的文件将会出现乱码!!!
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentType = "application/ms-excel ";//设置输出文件类型为excel文件。
System.IO.StringWriter ostringwriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter ohtmltextwriter = new System.Web.UI.HtmlTextWriter(ostringwriter);


this.GridView1.RenderControl(ohtmltextwriter);

< <这一句报错> > 类型“GridView”的控件“GridView1”必须放在具 有 runat=server 的窗体标记内。


Response.Output.Write(ostringwriter.ToString());
Response.Flush();
Response.End();

}

[解决办法]
添加下面这个重载方法即可
public override void VerifyRenderingInServerForm(Control control)
{

// Confirms that an HtmlForm control is rendered for

}



[解决办法]
UP
[解决办法]
帮你顶一下~~~~~~~
[解决办法]
Infragistics 的WebGird控件以及WebGridExcelExport控件可以非常轻松的实现你的做法,
并且,WebGrid控件还有很多其他的功能,
让你体验。
[解决办法]
Response.Charset = "gb2312 ";

你把gb2312改成 "UTF-8 " 试一下。。
[解决办法]
帮你顶一下~~~~~~~

[解决办法]
我给个现成的项目代码事例吧!!!!!!!!!!!

Private Sub Button_csv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_csv.Click

DataGrid1.Columns(1).Visible = True
DataGrid1.Columns(2).Visible = True
DataGrid1.Columns(3).Visible = True

DataGrid1.Columns(0).Visible = False
DataGrid1.Columns(13).Visible = False
Response.Clear()
Response.Buffer = True
Response.AppendHeader( "Content-Disposition ", "attachment;filename=Sheet1.xls ")
Response.ContentEncoding = System.Text.Encoding.GetEncoding( "utf-8 ") '
Response.ContentType = "application/ms-excel " '
Response.Charset = " "

Dim tw As New System.IO.StringWriter()
Dim hw As New System.Web.UI.HtmlTextWriter(tw)
DataGrid1.RenderControl(hw)

Response.Write(tw.ToString())
Response.End()
DataGrid1.Columns(1).Visible = False
DataGrid1.Columns(2).Visible = False
DataGrid1.Columns(3).Visible = False
DataGrid1.Columns(0).Visible = True
DataGrid1.Columns(10).Visible = True
End Sub
[解决办法]
以前论坛上就有这样的东东,自己搜搜是可以找到了
[解决办法]
欢喜,都解决了~

读书人网 >asp.net

热点推荐