JAVA POI导入Excel, 和“%”有关的 百分数格式问题

qq_20607181 2017-01-06 04:38:35
Java用POI导入EXCEL,
正常Cell格式是常规,
如果我在Cell里输入99%,Excel会自动识别该单元格格式为 百分数。
之后在后台获取到的Cell 类型为字符串,值为0.99 。
请问我该怎么处理这个问题?
...全文
3128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xun-ming 2017-12-07
  • 打赏
  • 举报
回复
引用 1 楼 u012934325 的回复:
我知道导出 你可以设置导出的单元格格式为%的("0.00%"),然后你对你的值进行除以100,然后导出到excel中会自动乘以100变百分比
原来是这样
qq_20607181 2017-01-09
  • 打赏
  • 举报
回复
谢谢各位, 我也查了一些资料, 大概得出结论,要么手动约束,要么在excel中约束 但是poi不能很好解决不同格式带来的读取问题。
coolsbaby 2017-01-06
  • 打赏
  • 举报
回复 1
你可以试一下,在excel中将单元格格式设置成文本格式的,这样在程序中就会将该单元格当成文本来读取,这样就会原样的得到单元格中的数字了,你可以试一下。
wqc_jiuchen 2017-01-06
  • 打赏
  • 举报
回复
引用 2 楼 wqc_jiuchen 的回复:

        double d = Double.valueOf("0.999999");
        DecimalFormat df = new DecimalFormat("#.##%");
        df.setRoundingMode(RoundingMode.DOWN);
        System.out.println(df.format(d));
DecimalFormat语法糖自行百度,poi的问题真心多,之前我碰见过常规单元格内填入数字到后台自动识别为科学技术法的问题,不知道谁能推荐个更好的框架
wqc_jiuchen 2017-01-06
  • 打赏
  • 举报
回复

        double d = Double.valueOf("0.999999");
        DecimalFormat df = new DecimalFormat("#.##%");
        df.setRoundingMode(RoundingMode.DOWN);
        System.out.println(df.format(d));
墨笙弘一 2017-01-06
  • 打赏
  • 举报
回复 2
我知道导出 你可以设置导出的单元格格式为%的("0.00%"),然后你对你的值进行除以100,然后导出到excel中会自动乘以100变百分比

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧