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

超过11位,excel会自动变成科学计数法,影响原始数据

解决原理:

  将excel列设置成文本格式

解决方法:

  // 创建工作簿
  HSSFWorkbook wb = new HSSFWorkbook(); 
  // 创建样式
  HSSFCellStyle cellStyle = wb.createCellStyle(); 
  // 创建一个DataFormat对象 
  HSSFDataFormat format = wb.createDataFormat(); 
  // @就是指文本型
  cellStyle.setDataFormat(format.getFormat("@")); 

  // ...

  cell.setCellStyle(cellStyle);

原文地址:https://www.cnblogs.com/ycha/p/11240707.html

时间: 2024-10-16 08:09:18

poi导出excel字符串变科学计数法问题的相关文章

用apache poi读取excel数字是科学计数法的问题

昨天老大给了我一个excel文件叫我把里面的内容用短信发出去(文件里面就2个字段,手机号码和内容),然后我就写了一个方法用apache里面的poi读取,发现读取的手机号码是科学计数法,经过了解发现无论数字是否小数,使用cell.getNumbericCellValue() 去获取值的时候,会得到一个double,而且当长度大一点的时候会变成科学计数法形式.那么获取这个单元格的原始的数据,就其实是一个double怎么转换成整数的问题了. 我们就可以用DecimalFormat对这个double转换

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

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

EasyUI datagrid-export 将datagrid的数据导出至Excel-解决科学计数法

通过EasyUI datagrid-export.js 将datagrid的数据导出至Excel的时候,如果有类似身份证一样很长的数字,需要在后台返回数据的时候在数字前增加一个 “ ”,将数字转为字符串. <script type="text/javascript" src="../jquery-easyui-1.5.5.2/datagrid-export.js" ></script> function export_excel() { va

Excel科学计数法转换为文本(转载)

excel中的科学计数法有时候会带来意想不到的麻烦.特别是从网页上复制过来的数据粘贴到自己的表中时变成了科学计数法的形式,处理起来很麻烦.今天看到了一个简单的方法,将数据转换成文本,而且末位不会丢失. 方法一:选定数据区域,点击“数据→分列→下一步→下一步→文本→完成”.(简单好用) 方法二:1.先把excel表格设置为文本格式.         2.复制过来粘贴时,右键选项"选择性粘贴"-->文本:         3.如果是 Excel2003,粘贴过来时,单元格右下有个选项

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

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

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

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

导出EXCEL数据时防止数值变科学计数的办法

网上有很多说法,最简单直接正确的做法是判断一下是否为数值以及长度,然后给单元格加上以下CSS即可: mso-generic-font-family:auto;   mso-font-charset:134;    mso-number-format:"\@";   mso-background-source:auto;   mso-pattern:auto; 这个办法我是从:http://www.cnblogs.com/joinger/articles/1322931.html 这个博

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

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

Java jxl导入excel文件,导入的数字、身份证号码、手机号变成了科学计数法,解决方案

原文出自:https://blog.csdn.net/seesun2012 这是一个execl文件导入数据库操作,使用jxl解析execl导入数据库过程出现了科学计数法,与想要导入的数据不匹配,以下是案例以及解决方案: 导入成功后示例: 1.手机号:15388886666 科学计数法:1.54E+10 2.数字:123456789000000 科学计数法:1.23E+14 3.身份证:432222198808083789 科学计数法:4.32E+17 解决思路: 1.判断是否为数字类型(NUMB