把DataGrid中的数据出Execl,其中"身份证"这一字段在Excel中后面的几位都变为0了,请高手指教

ljfwarrior 2006-11-10 12:25:20
我用的导出方法是:

public void DataGridToExcel(DataGrid grdTemp,DataTable dsTemp,string strTitle)
{
strTitle=HttpUtility.UrlEncode(strTitle.Trim(),System.Text.Encoding.UTF8); //编码转换
grdTemp.AllowPaging =false; //设置不能分页
grdTemp.DataSource =dsTemp ; //重新绑定
grdTemp.DataBind();
//常规导出方法
System.IO.StringWriter SW = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter HTW=new System.Web.UI.HtmlTextWriter(SW);
grdTemp.RenderControl(HTW);

//Page为要导出的对象,当前是Page,如果是DataGrid,DataList等都可以
Response.Buffer=true;
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/vnd.ms-excel";
//Response.ContentType是输出流的 HTTP MIME 类型
//Response.ContentType --- word文件
//application/vnd.ms-excel --- excel文件
//...
Response.Charset="utf-8";
Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");
Response.AddHeader("Content-Disposition", "attachment;filename="+strTitle+".xls");
//attachment --- 作为附件下载
//inline --- 在线打开
//filename如过是中文,则可以用
strTitle=HttpUtility.UrlEncode(strTitle,System.Text.Encoding.UTF8);
//进行进行编码,以解决文件名乱码的问题
Response.Write(SW.ToString());
Response.Flush();
Response.Close();
}


导出后身份证号码一字段都变成以下:
4.40682E+17
4.40682E+17
4.40682E+17
4.40682E+17
4.40682E+17
4.40682E+17


我把该列的格式转换为数字时,后面的几位都变为0了
440682198207312000
440682198207312000
440682198207312000
440682198207312000
440682198207312000
440682198207312000

请高手指教
...全文
1008 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljfwarrior 2006-11-10
  • 打赏
  • 举报
回复
谢谢 net_lover(【孟子E章】) OK拉!!哈哈..谢谢
shalen520 2006-11-10
  • 打赏
  • 举报
回复
mark
nimeide1234567890 2006-11-10
  • 打赏
  • 举报
回复

<%@ Page language="c#" AutoEventWireup="true" %>
<script runat="server">
void Page_Load(object sender, System.EventArgs e)
{
string data1 = "000000001";
long data2 = 123456789123456789;
System.IO.StringWriter sw = new System.IO.StringWriter();
sw.WriteLine("原数字1\t转换后数字1\t原数字2\t转换数字2");
for(int i= 0;i<10;i++)
{
sw.WriteLine(data1 +"\t" + "=\"" + data1 + "\"\t" + data2 +"\t" + "=\"" + data2.ToString() + "\"");
}
sw.Close();
Response.Buffer= true;
Response.Charset="";
Response.AppendHeader("Content-Disposition","attachment;filename=aa.xls");
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
Response.Write(sw);
Response.End();

}
</script>
孟子E章 2006-11-10
  • 打赏
  • 举报
回复
e.Item.Cells[0].Attributes.Add("style","vnd.ms-excel.numberformat:@");
即可
孟子E章 2006-11-10
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/article/8A4CBF47-B888-4832-3389-ED3A3A3C8AAB/read.aspx

http://dotnet.aspx.cc/Exam/OutPutExcel.aspx

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧