提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
问题
使用数据库工具DBeaver导出cvs格式文件,对于较长的数字型数据,在excel中显示为科学计数法,点击单元格显示的数字仅有前15位数据正确,后面数字被0替代,修改单元格格式也无法解决问题
。
一、为什么(WHY)?
Excel打开csv文件时,只要字段值都是数字,它就认为该字段类型是数值。但是Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法;如果数字大于15位,它不仅用于科学技术法表示,还会只保留高15位,其他位都变0。
我们存放在数据库中的纯数字char有可能会超过15位,这样导出csv文件后,用文本工具打开显示正常,但是用excel打开看到的字段值就是错误的。如下图所示:
数据库中原始数据:
导出CSV文件,文本编辑工具打开:
导出CSV文件,Excel打开:
二、解决方法
在使用数据库工具DBeaver导出数据时需改变分隔符,加入\t (水平制表符,表示将当前位置移到下一个tab位置),而\t符号本身不会在Excel中显现,这样就可以避免科学计数法。如下图所示:
再次导出CSV文件,EXCEL工具打开效果如下:
至此,问题圆满解决。