• 导Excel时的科学计数法问题


    在datagrid往excel导数据时,会默认地把一些数值变成用科学计数法表示。

    要解决这个问题,想了很多办法,比如往前面加单引号(在excel中直接在数字前直接输单引号可以让数字正常显示,但在 程序中加入的就不行,不知道为什么),或者是改变类型等等,都没有用,最后用了一个方法,就是在前面加空格。

    以下是我的代码:

     protected void BtnExcel_Click(object sender, EventArgs e)
        {
            dt = (DataTable)Session["dt"];
            //防止excel中sn为科学计数法
            for (int i = 0; i < dt.Rows.Count; i++)
                dt.Rows[i][1] = "&nbsp;" + dt.Rows[i][1].ToString();//空格不是空出一格来,而是它的html标志

            dg2.DataSource = dt.DefaultView;
            dg2.DataBind();
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=PanDataList.xls");
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文
            Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
            EnableViewState = false;
            System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
            System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
            dg2.RenderControl(oHtmlTextWriter);
            Response.Write(oStringWriter.ToString());
            dg2.ShowHeader = false;
            Response.End();
        }

    这样导出的excel文档就是正常的了。

    在网上有搜到这篇文章,但时间太少,来不及试验其中的做法。

    稍后有时间再补上。http://www.cnblogs.com/huomm/articles/982862.html


     

  • 相关阅读:
    前言内容
    hibernate criteria中Restrictions的用法
    数据库默认端口
    MyEcplise2014集成SVN
    Java中的HashMap和HashTable到底哪不同?(原文参考来自码农网)
    MyEclipse控制台报错:java.lang.OutOfMemoryError: PermGen space
    版本管理软件Git 初感
    二分法,冒泡排序
    关于tail, head ,less ,more ,cat 之小介------Linux命令
    java:字符串反转
  • 原文地址:https://www.cnblogs.com/huige1004/p/1328215.html
Copyright © 2020-2023  润新知