博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net导出excel及科学计数问题
阅读量:7051 次
发布时间:2019-06-28

本文共 3128 字,大约阅读时间需要 10 分钟。

 

导出最简单方法:

const string style = @" ";            Response.ClearContent();            Response.AddHeader("content-disposition", "attachment; filename=" + Server.UrlEncode(Name) + ".xls");            Response.ContentType = "application/excel";            StringWriter sw = new StringWriter();            HtmlTextWriter htw = new HtmlTextWriter(sw);            //htw.WriteLine(Name);            System.Web.UI.LiteralControl lt = new LiteralControl();            lt.Text = "
" +Name + "
"; if(Name!="")lt.RenderControl(htw); gvdata.RenderControl(htw); // Style is added dynamically Response.Write(style); Response.Write(sw.ToString()); Response.End();

 

导出出现科学计数解决办法一:

 

GridView gvdata = new GridView();                gvdata.HeaderStyle.BackColor = System.Drawing.Color.Silver;                gvdata.HeaderStyle.Font.Bold = true;                gvdata.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;                gvdata.RowDataBound += new GridViewRowEventHandler(gvdataRowDataBound);                gvdata.DataSource = dtData;                gvdata.DataBind();                const string style = @" ";                Response.ClearContent();                Response.AddHeader("content-disposition", "attachment; filename=" + Server.UrlEncode(strFileName) + ".xls");                Response.ContentType = "application/excel";                StringWriter sw = new StringWriter();                HtmlTextWriter htw = new HtmlTextWriter(sw);                //htw.WriteLine(Name);                System.Web.UI.LiteralControl lt = new LiteralControl();                lt.Text = "
" + strFileName + "
"; if (strFileName != "") lt.RenderControl(htw); gvdata.RenderControl(htw); // Style is added dynamically Response.Write(style); Response.Write(sw.ToString()); Response.End(); public void gvdataRowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat:@"); e.Row.Cells[2].Attributes.Add("style", "vnd.ms-excel.numberformat:@"); } }

 

 
另注:  //1)  文本:vnd.ms-excel.numberformat:@
          //2)  日期:vnd.ms-excel.numberformat:yyyy/mm/dd
         //3)  数字:vnd.ms-excel.numberformat:#,##0.00
         //4)  货币:vnd.ms-excel.numberformat:¥#,##0.00
         //5)  百分比:vnd.ms-excel.numberformat: #0.00%
 
 
 

DataTable导出到Excel时身份证号信息自动转换为科学计数法的解决方案

 

做项目的时候是否遇到过这种问题,我今天遇到了就给大家分享下,在网上找的答案都是针对gridview控件的,还有就是该DataTable的身份证号列的类型为string,再有就是前面加单引号什么的,但是我都没有试验成功不知道是我人品的问题还是真不行,但是今天我整的这个方案完美避开了科学计数法 呵呵 废话少说上代码

1 DataTable dt = new DataTable(); 2         dt.Columns.Add(new DataColumn("身份证号")); 3         DataRow dr = dt.NewRow(); 4         StringBuilder sb = new StringBuilder("=\""); 5         sb.Append("1234567890123456789").Append("\""); 6         dr[0] = sb.ToString(); 7         dt.Rows.Add(dr); 8         ImportAndExport.CreateExcel(dt, "1", "11.xls");
复制代码

嘿嘿 够简单吧!原理就是Excel会自动把="1234567890123456789"认为计算字符串的公式 嘿嘿,不信的请新建个Exel文件试试

转载地址:http://mesol.baihongyu.com/

你可能感兴趣的文章
VoltDB 简介
查看>>
编译日志
查看>>
FieldType in Lucene
查看>>
为面试准备的知识点
查看>>
使用 CXF 做 webservice 简单例子
查看>>
Spring MVC之@RequestMapping 详解
查看>>
使用STS和Gradle创建Restful服务-Hello World
查看>>
网络服务器开发总结
查看>>
关于redis的主从、哨兵、集群
查看>>
Extjs Form用法详解
查看>>
ExecutorService线程池
查看>>
OD使用及快捷键
查看>>
将Mule ESB Http项目转换为Tomcat项目(3) ESB项目运行
查看>>
IE9开始支持SVG格式(VML终结)
查看>>
php set_time_limit
查看>>
一种Android的多平台的安装包打包方法探究
查看>>
观察者模式
查看>>
【转】PHP中的Hash算法
查看>>
SqlLite的工具类SQLiteOpenHelper
查看>>
chgrp chown chmod
查看>>