zoukankan      html  css  js  c++  java
  • WPS单元格格式由常规转为文本的一点坎坷

    1.问题引入

      通过WPS导入数据至数据库,其中一些单元格的内容是数字,在数据库查看某些相应的数据值,其值都被截断了,只保留了一位数字。

    2.问题分析

      通过本地调试,发现通过POI工具解析WPS中内容时一些数字是采用科学计数法的,通过不同的数据对比分析,若数字位数长度在8位以内的都是十进制数展示的,若数字位数长度大于或等于8位了,那么它就会采用科学计数法;而在Java后端逻辑处理的时候根据点号来截取取整了,导致科学计数法的数据小数点后部分数值被丢失了。

    3.问题处理

      目前有两种策略来修改,一是通过修改后端代码,支持对科学计数法的解析;另外一种是通过修改WPS模板,将单元格的格式改为文本。由于是在产线环境,所以暂时通过修改模板来解决。

      3.1单元格常规格式时数字的展示

           3.2单元格文本格式时数字的展示

      通过上述处理后,在后端还是获取到科学计数法方式的数据,仍旧没有解决问题。此时,你需要双击格式修改过的单元格,然后让该单元格失去焦点,此时在该单元格的左上角会出现一个小三角形,然后你再选中它,在左边会出现一个黄色感叹号,如下图所示:

       

      经过上述操作后,点击保存,然后导入该文件数据,此时后端获取到的数据不再是科学计数法形式了。在这里有一点不太明白,为啥给单元格设置文本样式后,还需要双击它,做了这一步操作后,后端解析数据时才是十进制形式的数字,对此有点不理解。

    4.问题小结

      这次的问题的产生,主要是没有考虑到这些场景。此次记录,以便后续不再犯类似错误。

  • 相关阅读:
    iSCSI 原理和基础使用
    Kerberos原理和基础小结
    LDAP学习小结【仅原理和基础篇】
    nmcli 学习小结
    如何让百度收录自己的网站?
    dedecms SESSION变量覆盖导致SQL注入漏洞修补方案
    cms网站模板收集
    学会这些装饰技巧,分分钟让你家看起来挑高一倍!
    15 个最佳 jQuery 翻书效果插件
    CSS动画简介
  • 原文地址:https://www.cnblogs.com/bien94/p/13963546.html
Copyright © 2011-2022 走看看