Web页面输出Excel的数字问题解决方法
在网页格式Excel中保持数字原样显示的属性是mso-number-format: '\@',而GridView没有设置这个样式的属性,所以需要使用类选择器。输出的时候需要把样式表和GridView一起输出,所以要输出父元素:
<div id="dg" runat="server" visible="false"> <style type="text/css"> .num { mso-number-format: '\@'; } </style> <asp:GridView ID="GridViewdg" runat="server" AutoGenerateColumns="False"> <Columns> <asp:BoundField DataField="Name" HeaderText="姓名" /> <asp:BoundField DataField="Birthday" HeaderText="出生年月" /> <asp:BoundField DataField="Sex" HeaderText="性别" /> <asp:BoundField DataField="Mobile" HeaderText="移动电话" ItemStyle-CssClass="num" /> <asp:BoundField DataField="IDCard" HeaderText="身份证号" ItemStyle-CssClass="num" /> </Columns> </asp:GridView> </div>
Response.Clear(); Response.Charset = "UTF-8"; Response.ContentType = "application/vnd.ms-excel"; Response.ContentEncoding = System.Text.Encoding.UTF8; Response.AppendHeader("Content-Disposition", "attachment;filename=Userinfo.xls"); System.IO.StringWriter sw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw); DataTable dt = bllUsers.GetAllList().Tables[0]; GridViewdg.DataSource = dt; GridViewdg.DataBind(); dg.RenderControl(htw); Response.Write(sw.ToString()); Response.End();
==================================================================================
晕死了,弄这个东西的时候总觉得太费劲,感觉有简单的方法,果然,思路刚换就想起来了平时使用的模板,因为是修改别人做的东西,就没想着改,直接一个Table向外一套,然后里面td想写啥样式写啥样式,哪来那么麻烦。
posted on 2009-07-30 18:35 Lionheart Zhang 阅读(457) 评论(0) 编辑 收藏 举报