同事离职 ,把手头的程序给我了,第二天客户说:“为什么我们导出的excel不会自己汇总啊??”
。。。。您稍等一下,我看一下哈(我怎么知道你们导出的excel为什么不会汇总啊!!)
打开程序
没什么问题,然后导出打开
这是神马?合着你导出来的全部是文本格式的了。文本格式存储的数字怎么汇总你告诉我。
看代码吧
1 voidexportexcel()2 {3 DataTable dt =getDataTable();4 if (dt != null)5 {6 Response.Clear();7 Response.Buffer = true;8 Response.Charset = "GB2312";9 Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(exceltitle.Value, System.Text.Encoding.UTF8) + ".xls");10 Response.ContentEncoding =System.Text.Encoding.UTF8;11
12 Response.ContentType = "application/ms-excel";13 this.EnableViewState = false;14 System.IO.StringWriter oStringWriter = newSystem.IO.StringWriter();15 System.Web.UI.HtmlTextWriter oHtmlTextWriter = newSystem.Web.UI.HtmlTextWriter(oStringWriter);16
17 gvExport = newSystem.Web.UI.WebControls.GridView();18 gvExport.DataSource =dt.DefaultView;19 gvExport.AllowPaging = false;20 gvExport.DataBind();21 gvExport.Attributes.Add("style", "vnd.ms-excel.numberformat:@");22 //返回客户端
23 gvExport.RenderControl(oHtmlTextWriter);24 Response.Write(oStringWriter.ToString());25 Response.End();26
27
28 }29 close();30 }
View Code
excel的数据格式:gvExport.Attributes.Add("style", "vnd.ms-excel.numberformat:@");
下面是常用的一些格式:
1)文本:vnd.ms-excel.numberformat:@
2)日期:vnd.ms-excel.numberformat:yyyy/mm/dd
3)数字:vnd.ms-excel.numberformat:#,##0.00
4)货币:vnd.ms-excel.numberformat:¥#,##0.00
5)百分比:vnd.ms-excel.numberformat: #0.00%
你这里输出的格式就是文本啊!果断的改成第三条数字类型的(哈哈,我是不是很聪明)
等等,我表头的日期怎么回事,也变成数字了,看到它还有两位小数的就挠头了(失误,失误哈)
gvExport.HeaderRow.Attributes.Add("style", "
vnd.ms-excel.numberformat:@");
gvExport.Attributes.Add("style", "
vnd.ms-excel.numberformat:#,##0.00");
把表头改成原来的就行了,咱也不去改成时间类型了。
ok!完美,perfect!!!
本文由@巴黎_帅哥 原创,未经同意不得转载