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想写啥样式写啥样式,哪来那么麻烦。

转载于:https://www.cnblogs.com/flying19880517/archive/2009/07/30/SetExcelNumberFormatInHtml.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值