导出到Excel并且取消默认的科学计算法

 导出Excel的代码很多,其中这种最简单:

 protected void btnDCAll_Click(object sender, EventArgs e)
        {
            string DataString = DateTime.Now.ToString("yyyyMMddHHmmss");//已当前年月日时分秒做为文件名
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + DataString + ".xls");
                       Response.ContentEncoding = System.Text.Encoding.UTF7;
            Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
            System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
            this.GridViewAll.RenderControl(oHtmlTextWriter);//GridViewAll是GridView的名字,也可以放到一个Table中或是DataTable中
            Response.Output.Write(oStringWriter.ToString());
            Response.Flush();
            Response.End();
        }

 

 public override void VerifyRenderingInServerForm(Control control)
        {
        }

导出之后,如果数据比较多,会遇到科学计数法问题

解决的方法是:

  protected void GridViewAll_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                    e.Row.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat:@");//你所需要处理的列

                    //或所有的列

                     for (int i = 0; i < e.Row.Cells.Count; i++)
                     {
                           e.Row.Cells[i].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
                     }

            }

       }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值