• Java 读取Excel百分数保留原格式(即不转换为小数)的方法



    我们在用Java使用poi读取Excel时,或许会遇到百分数,然而poi自动将百分数转换为了小数,如果小数是以0开头的还可能被删除了起始的0,变成了.**,虽然数值大小没变,但是直观展示变了,对于不懂开发只关注结果的领导来说难免产生误解,这一误解就是100倍的,所以大多数时候需要我们将百分号%保留,那么下面就记录一种本人总结的方式:

    if(cell != null) {
      String cellStr = "";   String formatType
    = cell.getCellStyle().getDataFormatString(); // 如果是百分数,类型结果可能为 0%(保留整数) 或 0.00%(保留2位小数);   if (formatType.indexOf("%") != -1) {// 判断如果含百分号,则认为百分数类型     // System.out.println(cols.get(j) + "数据类型:" + formatType ); int baifenshuxiaoshuwei = 0; if(formatType.indexOf(".")!=-1) { // 判断包含小数点   baifenshuxiaoshuwei = formatType.substring(formatType.indexOf("."), formatType.indexOf("%")).length()-1; // 获取小数位数 cellStr = "#."; for(int weishu=0;weishu<baifenshuxiaoshuwei;weishu++) {   cellStr += "0"; } cellStr = new DecimalFormat(cellStr).format(cell.getNumericCellValue()*100) + "%"; // 保留对应位数百分号 if(cellStr.startsWith(".")) {// 如果以.开头的,前面加0拼接;   cellStr = "0" + cellStr; } } else { // 不含小数点,直接四舍五入整数;   cellStr = Math.round(cell.getNumericCellValue()*100)+"%"; }     //System.out.println(cellStr); }else {// 普通类型 cellStr = ExcelUtil.getCellStringValue(cell); // 自定义的读取其它格式数据的函数 } }

    更多方式欢迎评论区补充~~

  • 相关阅读:
    一个没调好的程序
    bzoj1214 [HNOI2004]FTP服务器
    bzoj4514 [Sdoi2016]数字配对(网络流)
    二分图最大权匹配模板(pascal)
    CSS控制文字,超出部分显示省略号
    新型智慧城市顶层设计经验分享
    移动端浏览器前端优化
    桌面浏览器前端优化
    关于ie8下disabled属性:字体颜色问题
    win10永久激活
  • 原文地址:https://www.cnblogs.com/jying/p/13072513.html
Copyright © 2020-2023  润新知