java 读取Excel百分数保留原格式(即不转换为小数)的方法
2021/10/19 17:09:35
本文主要是介绍java 读取Excel百分数保留原格式(即不转换为小数)的方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我们在用Java使用poi读取Excel时,或许会遇到百分数,然而poi自动将百分数转换为了小数,如果小数是以0开头的还可能被删除了起始的0,变成了.**,虽然数值大小没变,但是直观展示变了,对于不懂开发只关注结果的领导来说难免产生误解,这一误解就是100倍的,所以大多数时候需要我们将百分号%保留,那么下面就记录一种本人总结的方式:
1 /** 2 * 获取单元格值 3 * 4 * @param row 获取的行 5 * @param column 获取单元格列号 6 * @return 单元格值 7 */ 8 public Object getCellValue(Row row, int column) 9 { 10 if (row == null) 11 { 12 return row; 13 } 14 Object val = ""; 15 try 16 { 17 Cell cell = row.getCell(column); 18 if (StringUtils.isNotNull(cell)) 19 { 20 if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) 21 { 22 val = cell.getNumericCellValue(); 23 if (DateUtil.isCellDateFormatted(cell)) 24 { 25 val = DateUtil.getJavaDate((Double) val); // POI Excel 日期格式转换 26 } 27 else 28 { 29 if ((Double) val % 1 != 0) 30 { 31 val = new BigDecimal(val.toString()); 32 } 33 else 34 { 35 val = new DecimalFormat("0").format(val); 36 } 37 } 38 } 39 else if (cell.getCellType() == CellType.STRING) 40 { 41 val = cell.getStringCellValue(); 42 } 43 else if (cell.getCellType() == CellType.BOOLEAN) 44 { 45 val = cell.getBooleanCellValue(); 46 } 47 //解决导入Java 读取Excel百分数保留原格式(即不转换为小数)的方法 48 else if(cell.getCellType() == CellType.FORMULA) 49 { 50 if(cell.getCellStyle().getDataFormatString().indexOf("%") != -1){ 51 val = cell.getNumericCellValue()*100+"%"; 52 } 53 } 54 55 else if (cell.getCellType() == CellType.ERROR) 56 { 57 val = cell.getErrorCellValue(); 58 } 59 60 } 61 } 62 catch (Exception e) 63 { 64 return val; 65 } 66 return val; 67 }
这篇关于java 读取Excel百分数保留原格式(即不转换为小数)的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南