怎样把“GridView导出Excel”或是直接打印???怎样实现,思路和实例?以前做过,但是忘了。
解决方案 »
- asp.net url 传入汉字参数自动给我转码了 怎么办
- javascript调用后台方法 急急急急急!!!!!!!!!!!!!
- 控制图片适应大小问题(不让图片变形) 100分求解
- 帮手看一下这个代码在GridView1_RowDataBound事件里应该怎写?
- 一个Sql Server Reporting Services问题,想了一个星期也得不到结果,思归,孟子等高手请进
- 20分的简单问题:未将对象引用设置到对象的实例
- 请教报价-教务管理系统
- C++ 转C# 遇到问题 求救。。。。
- 这句代码是什么意思啊?
- 菜鸟投票系统问题~~~
- ODP.NET的使用问题《怎样建立ORACLECONNECTION>
- 为什么昨天做的代码还好好的,今天来源代码就全变成乱码了?
http://topic.csdn.net/u/20110711/10/fe699cf8-12e2-4963-8d6a-625d488f5d74.html
/// 将DataTable数据导出到EXCEL,调用该方法后自动返回可下载的文件流
/// </summary>
/// <param name="dtData">要导出的数据源</param>
public static void DataTable1Excel(System.Data.DataTable dtData)
{
System.Web.UI.WebControls.GridView gvExport = null;
// 当前对话
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
// IO用于导出并返回excel文件
System.IO.StringWriter strWriter = null;
System.Web.UI.HtmlTextWriter htmlWriter = null; if (dtData != null)
{
// 设置编码和附件格式
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
curContext.Response.Charset = "utf-8"; // 导出excel文件
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
// 为了解决gvData中可能进行了分页的情况,需要重新定义一个无分页的GridView
gvExport = new System.Web.UI.WebControls.GridView();
gvExport.DataSource = dtData.DefaultView;
gvExport.AllowPaging = false;
gvExport.DataBind(); // 返回客户端
gvExport.RenderControl(htmlWriter);
curContext.Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />" + strWriter.ToString());
curContext.Response.End();
}
}
/// <summary>
/// 直接输出Excel
/// </summary>
/// <param name="dtData"></param>
public static void DataTable2Excel(System.Data.DataTable dtData)
{
System.Web.UI.WebControls.DataGrid dgExport = null;
// 当前对话
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
// IO用于导出并返回excel文件
System.IO.StringWriter strWriter = null;
System.Web.UI.HtmlTextWriter htmlWriter = null; if (dtData != null)
{
// 设置编码和附件格式
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding =System.Text.Encoding.UTF8;
curContext.Response.Charset = "";
// 导出excel文件
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter); // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid
dgExport = new System.Web.UI.WebControls.DataGrid();
dgExport.DataSource = dtData.DefaultView;
dgExport.AllowPaging = false;
dgExport.DataBind(); // 返回客户端
dgExport.RenderControl(htmlWriter);
curContext.Response.Write(strWriter.ToString());
curContext.Response.End();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Clear();
Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "GBK";
Page.EnableViewState = false;
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//使输出的中文不乱码
Response.AppendHeader("Content-Disposition", "attachment;filename=baobiao.xls");
Response.Write("<html><head><meta http-equiv=Content-Type content=\"text/html;charset=GB2312\"><title>Copyright by SDU</title></head><body><form runat=server id=b1>");
Response.Write("<table><tr><td>车牌号</td><td>应收款</td><td>扣款费</td><td>实收款</td></tr>");
Response.Write(lbltable.Text);
Response.Write("</table></form></body></html>");
Response.End();
}
{
//base.VerifyRenderingInServerForm(control);
//導出 Excel 需此方法支持
}
protected void btnExport_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
Response.Charset = "utf-8";
Response.AppendHeader("Content-Disposition", "attachment;filename=Asset.xls");
Response.ContentType = "applications-excel";
System.Globalization.CultureInfo Cif = new System.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter strWriter = new System.IO.StringWriter(Cif);
System.Web.UI.HtmlTextWriter htmlWriter = new HtmlTextWriter(strWriter);
GridView1.AllowPaging = false;
BindGridView1();
GridView1.RenderControl(htmlWriter);
Response.Write(strWriter.GetStringBuilder());
Response.End();
GridView1.AllowPaging = true;
BindGridView1(); // GridView绑定数据的方法
}
关键是打印
其实就是先导出excel然后调用excel打印功能打印!