.net 导出excel

来源:互联网 发布:淘宝佣金精灵 编辑:程序博客网 时间:2024/06/15 00:57

protected void btn_Export_Click(object sender, EventArgs e)//导出按钮{DataTable dts=dsUDL().Tables[0];//数据源获取BLL.TB_ActivateSoftware bllas = new HYTD.CAPlatform.BLL.TB_ActivateSoftware();//取消表中多余列dts.Columns.Remove("OS_Type");dts.Columns.Remove("OS_DateTime");dts.Columns.Remove("OS_Uid");dts.Columns.Remove("OS_SoftID");dts.Columns.Remove("OS_Year");DataTable dtResult = new DataTable();//克隆表结构dtResult = dts.Clone();#region 修改字段类型foreach (DataColumn col in dtResult.Columns){if (col.ColumnName == "OS_ID"){//修改列类型col.DataType = typeof(Int32);}if (col.ColumnName == "OS_LoginName"){//修改列类型col.DataType = typeof(String);}if (col.ColumnName == "OS_RealName"){//修改列类型col.DataType = typeof(String);}if (col.ColumnName == "OS_SoftName"){//修改列类型col.DataType = typeof(String);}}#endregion#region 字段修改值int i = 1;BLL.TB_User bllus = new HYTD.CAPlatform.BLL.TB_User();foreach (DataRow row in dts.Rows){DataRow rowNew = dtResult.NewRow();//修改记录值rowNew["OS_ID"] = i;rowNew["OS_LoginName"] = row["OS_LoginName"];rowNew["OS_RealName"] = row["OS_RealName"];rowNew["OS_SoftName"] = row["OS_SoftName"];dtResult.Rows.Add(rowNew);i++;}#endregion#region 修改标题dtResult.Columns["OS_ID"].ColumnName = "编号";dtResult.Columns["OS_SoftName"].ColumnName = "软件名称";dtResult.Columns["OS_LoginName"].ColumnName = "用户名";dtResult.Columns["OS_RealName"].ColumnName = "姓名";#endregionExportExcel.GetExcel(dtResult, "用户下载软件清单");//调用excel类  导出excel表}/// <summary>/// 导出Excel/// </summary>/// <param name="dtData"> DataTable表格</param>/// <param name="FileName"> 文件名称</param>public static void GetExcel(System.Data.DataTable dtData, string FileName){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.AppendHeader("Content-Disposition", "attachment;filename=" + HttpContext.Current.Server.UrlEncode(FileName) + DateTime.Today.ToShortDateString() + ".xls"); //定义输出文件和文件名                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                 gvExport = new System.Web.UI.WebControls.GridView();                gvExport.DataSource = dtData.DefaultView;                gvExport.AllowPaging = false;                gvExport.DataBind();                // 返回客户端                 gvExport.RenderControl(htmlWriter);                curContext.Response.Write(strWriter.ToString());                curContext.Response.End();            }}