System.Web.UI.ImageClickEventArgs e){//导出文件名称string strFile

时间:2021-08-25 03:22:29

资源:excelService 处事

摆列问题

导出时,,数字和字符的摆列格式默认不一样,数字靠右,字符靠左,想让摆列一致,有两个步伐:

1 在绑按时,就做固定格式

2 导出时,将数字那一列转换为文本格式,例如以下

protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { //让数字以文本形式暗示 e.Row.Cells[4].Attributes.Add("style", "vnd.ms-excel.numberformat:@"); } }

转换函数

/// <summary> /// 导出button /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnExport_Click(object sender, System.Web.UI.ImageClickEventArgs e) { //导出文件名称 string strFileName = "报表.xls"; //取原始数据。并绑定 this.dagInfo.AllowPaging = false; this.dagInfo.AllowSorting = false; DataTable dt = BingData(); this.dagInfo.DataSource = dt; this.dagInfo.DataBind(); //使用本页面直接输出 WHPT_WebApp.Statistics.GridStyleReport.ToExcel(this.dagInfo , strFileName, delegate(System.Web.UI.HtmlTextWriter writer) { writer.Write(string.Format("<table width=100%><tr><td align=center colspan=5>{0}</td></tr></table>", "报表")); } , null); //恢复分页数据 this.dagInfo.AllowPaging = true; this.dagInfo.AllowSorting = true; BindInfo(1, ""); return; } #endregion


/// <summary> /// 转换成EXCEL /// </summary> /// <param name="ctl"></param> /// <param name="file_name"></param> public static void ToExcel(System.Web.UI.Control ctl, string file_name,RenderCallBack beforeRende,RenderCallBack afterRender) { //将控件数据导出成Excel文件 if (string.IsNullOrEmpty(file_name)) return; HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(file_name, System.Text.Encoding.UTF8)); HttpContext.Current.Response.Charset = "GB2312"; //"UTF-8"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default; HttpContext.Current.Response.ContentType = "application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword ctl.Page.EnableViewState = true; System.IO.StringWriter tw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); if (beforeRende != null) beforeRende(hw); ctl.RenderControl(hw); if (afterRender != null) afterRender(hw); HttpContext.Current.Response.Write(GetHtmlHeadText(tw.ToString())); HttpContext.Current.Response.End(); }


 

PS:此文仅做记录交流所用。不做他用