导出EXCEL时科学计数法问题 (转)

//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%

HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.Charset = "";
            HttpContext.Current.Response.ContentType = "application/vnd.ms-xls";
            HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(excelname + ".xls"));
            StringBuilder table = new StringBuilder();
            DataTable dt = ds.Tables[0];
            table.Append("<table style=‘border:1px solid #000000‘><tr>");
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                table.Append("<td>");
                table.Append(dt.Columns[i].Caption.ToString()); //标格的标题
                table.Append("</td>");
            }
            table.Append("</tr>");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                table.Append("<tr>");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    table.Append("<td style=‘vnd.ms-excel.numberformat:@‘>");
                    table.Append(dt.Rows[i][j].ToString());
                    table.Append("</td>");
                }
                table.Append("</tr>");
            }
            table.Append("</table>");
            return table.ToString();
            HttpContext.Current.Response.Write(table);
            HttpContext.Current.Response.End();
时间: 2024-10-15 16:17:55

导出EXCEL时科学计数法问题 (转)的相关文章

Excel中科学计数法如何转正常显示

当数值型数据达到12位的时候,将以科学计数法的方式显示在单元格内,但是编辑栏仍然正常显示.   右键单击12位数字所在单元格,在弹出的菜单栏中选择设置单元格格式.   在单元格格式中点数字选项卡,点自定义,在类型中输入一个“#”,然后点击确定,设置完之后原来的科学计数法消失,显示为实际的12位数字.   数值型数据最多能存储15位有效数字,如果超过15位,可以事先将单元格格式数字设置成文本. 原文地址:https://www.cnblogs.com/Sunshine-bing/p/1264273

用POI导出excel时,较长的数字不想被自动变为科学计数法的解决方式(转)

做过很多次导出excel了.都碰到一个问题,内容里如果包含一个比较长的数字,比如订单号“2546541656596”,excel会自动变成科学计数法... 弄过好几次都没有解决,最近又要导出excel了,下决心一定要找到解决办法 自己在excel里测试过,较长的数字,都会自动变成科学计数法,除非我们把单元格格式设置成“文本型” 哈哈,似乎找到了思路:用poi先把单元格设置成“文本型”就可以了把. 从文档里找到了这个方法HSSFCell.setCellType(int type),怎么看这个方法都

关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法

原文:关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法 上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认数字太长会转化为科学计数法,处理起来很简单,我们在导出时把数字转为字符串,Excel就不会识别为数字了,也就不会显示为科学计数方式. 我的处理方式是在变量后面加个空格,简单方便. $usercode .= ' '; $

解决HTML导出Excel表数字变成科学计数法

在做项目中,碰到如题的问题.比如要将居民的信息导出到excel中,居民的身份证号码因为长度过长(大于10位),excel会自动的将过长的数字串转换成 科学计数法.现在网上找到解决方案之一: (在数字串前后加 " " 或' ' 或 tab等空白内容都是行不通的,excel会自动去掉这些.除非你在数字串中间加,当然这样就不是我们要的结果了) 解决方案之一:<td style="mso-number-format:'\@';">1008211999090912

解决从Excel导入数据库,导入到DataTable时数据类型发生变化的问题(如数字类型变成科学计数法,百分数变成小数)

做项目的时候,C#读取Excel数据到DataTable或者DataSet,设断点查看DataTable,发现Excel的显示为较长位数数字的字段如0.000012在DataTable中显示为科学计数法1.2E-05,而百分数如143%在DataTable中显示为1.43.可是我想Excel中显示的是什么数据,读取到DataTable或者DataSet后与Excel中完全一致,解决办法如下: 1)打开要导入的EXCEL,把所有数据全选中(Ctrl+A)----复制(Ctrl+C): 2)新建一个

poi导出excel字符串变科学计数法问题

超过11位,excel会自动变成科学计数法,影响原始数据 解决原理: 将excel列设置成文本格式 解决方法: // 创建工作簿 HSSFWorkbook wb = new HSSFWorkbook();  // 创建样式 HSSFCellStyle cellStyle = wb.createCellStyle();  // 创建一个DataFormat对象  HSSFDataFormat format = wb.createDataFormat();  // @就是指文本型 cellStyle

java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式和其他常见Excel中数据转换问题

当使用POI处理excel的时候,遇到了比较长的数字,虽然excel里面设置该单元格是文本类型的,但是POI的cell的类型就会变成数字类型. 而且无论数字是否小数,使用cell.getNumbericCellValue() 去获取值的时候,会得到一个double,而且当长度大一点的时候会变成科学计数法形式. 那么获取这个单元格的原始的数据,就其实是一个double怎么转换成整数的问题了. 使用DecimalFormat对这个double进行了格式话,随后使用format方法获得的String就

导出csv文件数字会自动变科学计数法的解决方法

其实这个问题跟用什么语言导出csv文件没有关系.Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0.解决这个问题:只要把数字字段后面加上显示上看不见的字符即可,字符串前面或者结尾加上制表符"\t".php 程序可以这样判断,注意一定是"\t",不是'\t'.

如何批量把excel中已显示的科学计数法取消

作者:iamlaosong 把一文本文档复制到EXCEL中时,其中一列数字全部变成科学计数法,这些数其实是条码号,不需进行运算,如何可以取消科学计算法,将数字显示成原来的样子呢?一般方法如下: 1.你先将单元格格式设置成文本格式 2.转成文本后,你将那单元格双击一下 3.或者在数字前面加符号"'"(没有引号,注意是英文输入法下的) 不过对于数据量比较大的场合,这样一个一个的处理显然效率太低,采用分列的方法可以很快的处理所有单元格. 1.选中需要处理的列,点击分列按钮或菜单: 2.点击&