问题描述
利用GridView导出excel,方法基本相同,遇到一问题我有一列数据类型为nvarchar(20)型,但是保存的数据全部是数字,导出到excel时显示有问题如:2.00807E+16双击显示详细时后面有错误,请问应该怎么整法才不会以科学计算法导出?顺便列出导出的方法。publicvoidOutExcel(DataTabledt,Pagepage){GridViewgv=newGridView();page.Response.Clear();page.Response.AddHeader("content-disposition","attachment;filename=FileName.xls");page.Response.Charset="utf-8";page.Response.ContentType="application/vnd.xls";System.IO.StringWriterstringWrite=newSystem.IO.StringWriter();HtmlTextWriterhtmlWrite=newHtmlTextWriter(stringWrite);gv.DataSource=dt;gv.DataBind();gv.RenderControl(htmlWrite);page.Response.Write(stringWrite.ToString());page.Response.End();}
页面调用方法protectedvoidbtnOutExcel_Click(objectsender,EventArgse){try{AdminCompetencecompetence=newAdminCompetence();competence.OutExcel(this.getTable(),this);}catch(Exceptionex){this.lblMsg.Text="导出失败,原因:"+ex.Message;}}
解决方案
解决方案二:
我貌似习惯拼.csv文件输出.
解决方案三:
这样导出的,应该来说只是在Excel里面显示时是以科学计数法表示的吧.原始数据实际还是存的数字.到Excel里设置一下单元格格式为文本再看看
解决方案四:
列出示例数据:2.00807E+162.00807E+162.00807E+162.00807E+172.00807E+172.00807E+17在Excel文本格式下为:200807149404303002008071493248080020080714923470900200807131932590000200807131921470000200807131653570000数据库中的实际数据:200807131057370593200807131124460125200807131139430390200807131459604372008071315193803902008071315369096820080713153735071820080713154141025020080713155220468200807131554160671
解决方案五:
因为excel把读到数据看成数字格式了!!你需要加个‘,试试看!!
解决方案六:
友情帮顶
解决方案七:
引用4楼yagebu1983的回复:
因为excel把读到数据看成数字格式了!!你需要加个‘,试试看!!
这些都是有用的数据,不能改的,有没有办法让excel不这样保存?
解决方案八:
up
解决方案九:
excel默认它是数字,帮你转化了要不你就在最后面加'
解决方案十:
要不你把数字转化成1,000,000,000这种
解决方案十一:
不懂C#,帮顶
解决方案十二:
很有意义的贴子MARK~