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

Posted Future.Net 博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导出到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:@");
                     }

            }

       }

 
 

以上是关于导出到Excel并且取消默认的科学计算法的主要内容,如果未能解决你的问题,请参考以下文章

php导出excel时数字变成科学计数法,有的单元格内容是#号,最后一条数据跑到第一行的右边,怎么办?

xssfworkbook 怎么解决科学计算法

如何取消科学计数法?

c#中将datagridview中数据导出到excel中,点击保存可以保存,点击取消就出

软件导出数据到excel,数据都变成了科学计数,请问能否将EXCEL的默认数字格式改为数值?

excel中长数字字符串会默认变成科学计数法,如何去除?