首页 新闻 赞助 找找看

asp.net查询出数据后导出execl时身份证号一列显示不正确,高手帮我解决下吧,谢谢啦

0
悬赏园豆:10 [已解决问题] 解决于 2013-11-20 16:36
3.70811E+15 王玉平 1963-1-1 0:00 汉族 2497 建北小区10号楼2单元201室
3.70811E+15 宋伟洲 1963-1-1 0:00 汉族 0 益民东区4-4-4西
3.70822E+15 王如意 1963-1-1 0:00 汉族 2167 仙营居委仙营村11号楼1单元502室
3.70802E+15 候明英 1963-1-1 0:00 汉族 3.70811E+17 山东省济宁市中区唐口街道廉屯

第一列应该是身份证号,可是导出之后显示的就是上面的,这样是不对的,应该不是单元格格式的问题,我改过,也不行,下面是导出execl的按钮的代码:

protected void Button2_Click(object sender, EventArgs e)
        {
            //string uc = Request.Cookies["userinfo"]["usercode"];

            //CommonDB.WriteLog(string.Format("{0}|{1}|{2}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), uc, "GrjkdaCX_Exelc"));

            Response.Clear();
            Response.BufferOutput = true;
            Response.Charset = "UTF-8";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.Write("<meta http-equiv=Content-Type content=text/html;charset=UTF-8>");
            Response.AppendHeader("Content-Disposition", string.Format("attachment;filename=" + System.Web.HttpUtility.UrlEncode("个人健康档案", System.Text.Encoding.UTF8) + ".xls"));
            //设置导出文件的格式 
            Response.ContentType = "application/ms-excel";
            EnableViewState = false;
            System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("ZH-CN", true);
            System.IO.StringWriter stringWriter = new System.IO.StringWriter(cultureInfo);
            System.Web.UI.HtmlTextWriter textWriter = new System.Web.UI.HtmlTextWriter(stringWriter);
            //***************************************************************开始
            //this.GridView1.RenderControl(textWriter);
            个人基本信息DB db = new 个人基本信息DB();
            string wzd = GetWzd();
            string oid = Request.Cookies["userinfo"]["deptid"];
            string sjb = TextBox4.Text;
            string sje = TextBox5.Text;
            string dah = TextBox1.Text;
            string xm = TextBox2.Text;
            string zjm = "";
            string sfz = TextBox3.Text;
            string xzqh = Request.Form["district.id"];
            int dazt = ddl档案状态.SelectedIndex;
            int zx = 0;
            string ageStatus = DListAge.SelectedValue;
            int age = 0;
            if (TextBox6.Text != "")
            {
                age = Int32.Parse(TextBox6.Text);
            }


            DataTable dt = db.SelectExecl(oid,sjb, sje,dah,xm,zjm,sfz,xzqh,dazt, zx, ageStatus, age,sfhg,wzd);
            DataGrid grid = new DataGrid();
            try
            {
                grid.DataSource = dt;
                grid.DataBind();
                grid.RenderControl(textWriter);
            }
            catch
            {
                string script = string.Format("<script>TsAndTz('数据量过大,无法生成。')</script>");
                ClientScript.RegisterStartupScript(this.GetType(), "TsAndTz", script);
            }
            //****************************************************************结束

            string strExcel = stringWriter.ToString();
            //去除超链接
            strExcel = Regex.Replace(strExcel, "<a (.*?)>", "", RegexOptions.Compiled);
            strExcel = Regex.Replace(strExcel, "</a>", "");

            //把HTML写回浏览器 
            Response.Write(strExcel);
            Response.End();

        }

lijunmomo的主页 lijunmomo | 初学一级 | 园豆:34
提问于:2013-11-20 11:03
< >
分享
最佳答案
0

这没有错,你直接在excel中输入身份证号也会是这个效果,这是excel的数据显示格式,你可以右键身份证那列——>设置单元格格式——>数字——>选择文本,这时候你在excel中输入的身份证号就会正常显示。最简单的解决办法就是在你输出身份证那列加上“”就可以了,也可以在程序中设置excel数据显示格式,http://www.pc6.com/infoview/Article_33390.html这篇文章你可以看一下.

收获园豆:10
蟑螂恶霸 | 菜鸟二级 |园豆:214 | 2013-11-20 12:43

已经解决了!谢啦

lijunmomo | 园豆:34 (初学一级) | 2013-11-20 16:36
其他回答(3)
0

兄台检查是不是把身份证弄成了整型

大芝麻 | 园豆:4 (初学一级) | 2013-11-20 11:59
0

这个数据并没有错,改成字符串格式就还原了

拾梦小侠ด้้้ | 园豆:713 (小虾三级) | 2013-11-20 12:34
0

你把身份数据保存为文本,用'5138... 这种形式。

幻天芒 | 园豆:37175 (高人七级) | 2013-11-20 12:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册