【】
下面导出excel主要解决repeater产生乱码的问题
publicvoid CreateExcel(DataSet ds,string typeid,string FileName) { HttpResponse resp; resp = Page.Response; resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Disposition", "attachment;filename="+ FileName); string colHeaders="", ls_item=""; int i=0; //定义表对象和行对像,同时用DataSet对其值进行初始化 DataTable dt=ds.Tables[0]; DataRow[] myRow=dt.Select(""); // typeid=="1"时导出为EXCEL格式文档;typeid=="2"时导出为XML格式文档 if(typeid=="1") { //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符 for(i=0;i<dt.Columns.Count;i++) { if(i==dt.Columns.Count-1) { colHeaders +=dt.Columns[i].Caption.ToString() +"\n"; } else { colHeaders+=dt.Columns[i].Caption.ToString()+"\t"; } } //向HTTP输出流中写入取得的数据信息 resp.Write(colHeaders); //逐行处理数据 foreach(DataRow row in myRow) { //在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n for(i=0;i<dt.Columns.Count;i++) { if(i==dt.Columns.Count-1) { ls_item += row[i].ToString() +"\n"; } else { ls_item +=row[i].ToString() +"\t"; } } //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据 resp.Write(ls_item); ls_item=""; } } else { if(typeid=="2") { //从DataSet中直接导出XML数据并且写到HTTP输出流中 resp.Write(ds.GetXml()); } } //写缓冲区中的数据到HTTP头文档中 resp.End(); }
下面是普通用法
Response.Clear(); Response.Buffer = true; Response.Charset = "utf-8"; Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("名称", System.Text.Encoding.UTF8) + ".xls"); Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); //设置输出流为简体中文 Response.ContentType = "application/ms-excel"; //设置输出文件类型为excel文件。 this.EnableViewState = false; System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true); System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); // repeater控件的ID this.Repeater1.RenderControl(oHtmlTextWriter); Response.Write(oStringWriter.ToString()); Response.End();
导出另类样式的excel表
//ExcelExporter.CreateExcel((DataSet)Session["dataset"], DateTime.Now.ToString() + ".xls", "application/ms-excel", this.Page);
// ExcelExporter.CreateExcelO((DataSet)Session["dataset"], DateTime.Now.ToString() + ".xls", "application/ms-excel", this.Page); Response.Clear(); Response.Buffer = true; //Response.AppendHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToString()+".xls"); // Response.AddHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToString() + ".xls");
Response.Charset = "utf-8";
Response.ContentEncoding = System.Text.Encoding.UTF8; string names = DateTime.Now.ToString() + ".xls"; //Response.Write(names); Response.AddHeader("content-disposition", "attachment;filename=" + names);
Response.ContentType = "application/vnd.ms-excel";
//System.IO.StreamWriter write = new System.IO.StreamWriter();
System.IO.StringWriter write = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter html = new HtmlTextWriter(write); Repeater1.RenderControl(html); Response.Write(write.ToString()); Response.Flush();Response.End();