mysql导出csv文件excel打开后数字用科学计数法显示且低位变0的解决方法
Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法;如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0。Excel打开csv文件时,只要字段值都是数字,它就认为该字段类型是数值。但我们存放在数据库中的纯数字char有可能会超过15位,这样导出csv文件后,用excel打开看到的字段值就不对了。网上的解决方法1、将单元格格式设为文本,但行不通,
·
Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法;如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0。
Excel打开csv文件时,只要字段值都是数字,它就认为该字段类型是数值。但我们存放在数据库中的纯数字char有可能会超过15位,这样导出csv文件后,用excel打开看到的字段值就不对了。
网上的解决方法
1、将单元格格式设为文本,但行不通,还是会以科学计数法显示
2、将单元格格式设为特殊,类型邮政编码,这样不会以 科学计数法显示,但是数字超过15位时低位还是会变0;
3、新建一个新工作表,用数据导入自文本文件功能,将csv导入到工作表中(分隔符逗号,每一列格式都设为文本) ,这样可以正确显示,但是每次导出新csv文件都要这么做比较麻烦,而且我们也不可能让客户去进行这个操作。
参考这篇文章 java导出csv用excel打开后数字不用科学计数法显示
我在mysql导出csv文件时,设置字段值用制表符\t括起来( outfile 'e:\\test.csv' fields terminated by ',' optionally enclosed by '\t' lines terminated by '\r\n' ),这样excel打开csv文件时,会将数值用文本格式显示,而不是数值格式,因为我们的数值前后都有制表符\t,而不是单纯的数字。这样打开导出的csv文件就可以正常显示了。
Excel打开csv文件时,只要字段值都是数字,它就认为该字段类型是数值。但我们存放在数据库中的纯数字char有可能会超过15位,这样导出csv文件后,用excel打开看到的字段值就不对了。
网上的解决方法
1、将单元格格式设为文本,但行不通,还是会以科学计数法显示
2、将单元格格式设为特殊,类型邮政编码,这样不会以 科学计数法显示,但是数字超过15位时低位还是会变0;
3、新建一个新工作表,用数据导入自文本文件功能,将csv导入到工作表中(分隔符逗号,每一列格式都设为文本) ,这样可以正确显示,但是每次导出新csv文件都要这么做比较麻烦,而且我们也不可能让客户去进行这个操作。
参考这篇文章 java导出csv用excel打开后数字不用科学计数法显示
我在mysql导出csv文件时,设置字段值用制表符\t括起来( outfile 'e:\\test.csv' fields terminated by ',' optionally enclosed by '\t' lines terminated by '\r\n' ),这样excel打开csv文件时,会将数值用文本格式显示,而不是数值格式,因为我们的数值前后都有制表符\t,而不是单纯的数字。这样打开导出的csv文件就可以正常显示了。
更多推荐
已为社区贡献1条内容
所有评论(0)