java jxl导出excel,当数字超过11位变成科学计数法,如何转换成数字问题解决方法

 使用jxl的可能会遇到这种问题,比如导出身份证号或者其他数字可能超过11位的,使用普通的文本导出时候,excel就会自动变成科学计数法的形式,这影响了用户体验,找来找去,想看看jxl有没有提供设置单元格格式的api,后来终于找到了,如下:

jxl都可以生成excel,给你说下jxl怎么生成的吧,详细的api你可以从网上下载。
//添加带有formatting的Number对象 
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");    //设置数字格式
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf); //设置表单格式    
jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN); //格式化数值
ws.addCell(labelNF);   //在表单中添加格式化的数字

 我在使用的时候,一开始发现导出的是这样:

  一开始还以为没有成功,发现是单元格宽度太窄了,拖动上方,显示正常, 这个也可以通过设置宽度来解决:

// 设置宽度,2018年1月2日14:57:23
bankListSheet.setColumnView(i + 3, 10);//防止出现####的形式
jxl.write.Number labelNF = new jxl.write.Number(i + 3, bodyLengtj + 3, titleDoubleSum.getSumDoule()
.get(i), titleCellFormat); // 格式化数值,超过十一位默认会转为科学计数法,需要设置一下,2018年1月2日14:35:15

 

记录一下方便后人参考,参考链接:jxl显示身份证号码

猜你喜欢

转载自blog.csdn.net/omayyouhappy/article/details/78951807