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();
}
这没有错,你直接在excel中输入身份证号也会是这个效果,这是excel的数据显示格式,你可以右键身份证那列——>设置单元格格式——>数字——>选择文本,这时候你在excel中输入的身份证号就会正常显示。最简单的解决办法就是在你输出身份证那列加上“”就可以了,也可以在程序中设置excel数据显示格式,http://www.pc6.com/infoview/Article_33390.html这篇文章你可以看一下.
已经解决了!谢啦
兄台检查是不是把身份证弄成了整型
这个数据并没有错,改成字符串格式就还原了
你把身份数据保存为文本,用'5138... 这种形式。