问题描述

java apache poi 包内是否有方法可以获取Excel数值类型单元格中保留的位数?

问题出现的环境背景及自己尝试过哪些方法

有这么一个场景:

需求:从Excel文件中读取数据,原样落库

我的实现思路:使用POI读取每个单元格内容,根据规则落库

但是在使用POI读取数值类型的单元格时出现了问题,有这么一类值,格式是保留n位小数,但是小数位为全0:

这种类型的值我在使用POI读取时,只能读到整数位,无法读取小数位。

我尝试过的获取方法为(仅节选处理数值类型单元格逻辑):

使用NumberFormat格式化:import org.apache.poi.ss.usermodel.*;

private static NumberFormat numberFormat = NumberFormat.getNumberInstance();

public static String getStringValue(Cell cell){

String cellValue;

//是数字类型单元格

if(cell.getCellTypeEnum().equals(CellType.NUMERIC)){

//非日期类型的数字单元格

if(!DateUtil.isCellDateFormatted(cell)){

double doubleValue = cell.getNumericCellValue();

cellValue = numberFormat.format(doubleValue);

}

}

return cellValue;

}

使用DecimalFormat格式化:import org.apache.poi.ss.usermodel.*;

private static DecimalFormat decimalFormat = new DecimalFormat("#.######");

public static String getStringValue(Cell cell){

String cellValue;

//是数字类型单元格

if(cell.getCellTypeEnum().equals(CellType.NUMERIC)){

//非日期类型的数字单元格

if(!DateUtil.isCellDateFormatted(cell)){

double doubleValue = cell.getNumericCellValue();

cellValue = decimalFormat.format(doubleValue);

}

}

return cellValue;

}

直接设置类型为String获取:import org.apache.poi.ss.usermodel.*;

public static String getStringValue(Cell cell){

String cellValue;

//是数字类型单元格

if(cell.getCellTypeEnum().equals(CellType.NUMERIC)){

//非日期类型的数字单元格

if(!DateUtil.isCellDateFormatted(cell)){

cell.setCellType(CellType.STRING);

cellValue = cell.getStringCellValue();

}

}

return cellValue;

}

但是最终的结果都无法读取我想要的保留n位0的数

后来我又尝试了使用EasyExcel,得到的是同样的结果。

你期待的结果是什么?实际看到的错误信息又是什么?

我期待结果为:能够读取出 1000000.00、1000.0000、185.00这三个字符串。

我分析过为什么无法读取出,应该是因为单元格内存储的值就是整数,只是显示出来的时候加上了单元格保留小数的格式。

所以我认为单纯的读数应该解决不了这个问题,需要再获取一个该单元格的保留位数值才行,但是我翻了一下POI的文档,好像都没有看到类似的方法。所以求助各位大佬!

java apache poi 包内是否有方法可以获取Excel数值类型单元格中保留的位数?

或者是否有其他可以达到效果的实现方法?

java poi设置单元格格式为数值,Apache POI 如何读取Excel中数值类型单元格所规定的保留小数位?...相关推荐

  1. Java读取Excel中的合并单元格

    本文以Java示例展示读取Excel中的合并单元格的方法. 1. Maven仓库下载导入 在pom.xml中配置maven路径,指定依赖,如下: <dependency><group ...

  2. xlwings设置单元格格式为文本-改正身份证显示问题+excel单元格设置为文本为何还要双击

    关键代码 sht.range("a:a").api.NumberFormat = "@" import xlwings wb = xlwings.Book() ...

  3. php如何读取excel合并单元格_PHP读取excel中合并的单元格的值

    RT 在做的一个东西,需要读取excel中个别列的内容,之前用的php excelreader,但是合并的单元格都是空的值,而且我的excel也不好判断只要是空的就用数组中上个的值这种方法,本身exc ...

  4. POI导出EXCEL带水印 以及单元格格式设置

    客户提个需求,需要将报表导出 excel带水印 和 pdf带水印 2个版本. 做的时候连excel本身怎么带水印都不知道,更不用说用java了.后来在网上搜到了excel添加水印的2个方法. 1.艺术 ...

  5. 王佩丰Excel24讲_第2讲:excel单元格格式设置

    文章目录 一.使用单元格格式工具美化表格 1.设置单元格格式 2.合并单元格 3.表格中的斜线如何设置 4.格式刷 二.单元格数字格式 1.数字格式 3.利用数字格式隐藏数据 4.数字格式学习表 三. ...

  6. 单元格格式_你最想要的自定义单元格格式来了!

    Excel提供了功能丰富的自定义格式代码,当我们在单元格输入数值后,可以通过自定义格式创建自己需要的数据格式. 自定义格式代码常规情况下分为四段,每一段的意思是:正数格式;负数格式;零值格式;文本格式 ...

  7. 单元格格式_单元格格式的用法你知道吗~~

    想了解excel吗??? 想从小白变大神吗??? 快来look look excel单元格格式的用处吧!!! 先来了解一下单元格格式的3种打开方式吧! one..单击右键选择设置单元格格式 two.. ...

  8. 杂记(一):Excel对列排序;Rank函数;#N/A;单元格格式转换细节

    文章目录 前言 问题 Excel排序:Rank函数语法 例: 第一个问题:单元格格式未修改成"数值"(如果已设置成"数值"格式仍#N/A,请直接看第二步) 第二 ...

  9. java poi设置单元格格式为数值_Excel 文本转数值的方法——我找的好苦啊

    不明绝厉 在Excel中的单元格中输入数字时,如果在数字前加上一个半角单引号(')则该数字在单元格中的存储格式会自己转为"文本格式". 如果有一列(或一行)数字都是用这种方法输入的 ...

最新文章

  1. 常见的集合容器应当避免的坑
  2. 【BZOJ2117】 [2010国家集训队]Crash的旅游计划
  3. iOS核心动画高级技术(十二) 性能调优
  4. webpack + react 使用 eslint
  5. #1398 : 网络流五·最大权闭合子图
  6. 牛客 - Dress as women(sg定理+位运算)
  7. 为了快一点为什么却要慢一点
  8. Python3.2官方文档翻译--作用域和命名空间实例
  9. switch语句php,PHPswitch 语句 - PHP教程
  10. frp + nginx 配置多人共用的http 内网穿透服务
  11. mysql 搭建日志服务器_rsyslog+mysql+loganalyzer 环境搭建日志服务器
  12. ubuntu文件夹建立软链接方法
  13. 根据时间戳生成编号_使用雪花算法生成流水号!
  14. 如何做一个基于微信外卖点餐小程序系统毕业设计毕设作品
  15. uniapp 评论列表,展开,收起,全部,局部刷新功能
  16. 端口扫描之FTP反弹扫描
  17. 80286保护模式和实模式的基础概念
  18. Base-calling for next-generation sequencing platforms (译文)
  19. execute immediate
  20. 如何正确理解「指标」和「标签」

热门文章

  1. linux flatpak 简介 同一个应用在不同linux发行版运行
  2. linux c 字符串查找函数 strstr strcasestr
  3. linux redis 启动警告解决方法
  4. golang 调用库函数错误 cannot refer to unexported name
  5. Linux中error while loading shared libraries错误解决办法
  6. 利用位运算和指针实现的交换两个数的程序
  7. C++中智能指针的设计和使用
  8. Java 利用接口实现回调
  9. mysql avg 求平均值_使用MySQL中的AVG函数求平均值的教程
  10. mysql主从复制延时性问题_MySQL主从同步延迟原因及解决办法