Excel 系列一 之 账户类长数字打开不截断与完全显示
前言
对于 Excel 的使用,我觉得无论是普通人还是职场上的各类人员,其实都可以算上一个必备课。像中学,大学生可能会使用统计班级人员信息,职场人员需要统计员工信息,产品信息,做一些简单地聚类,聚合计算。
本次背景
对于大量的 id
类型,还有对于钱的存储实际上的扩大了十万倍存储,因此在使用 Excel 打开 csv 的时候进行探查,会发现直接将数字进行了科学计算显示。更为严重的情况是将数字的精度进行了截断,会发现像 988882928372492837492364 这样的变成了 988882928372492837490000 之类的情况,这个机制深层原因是 Excel 使用了 IEEE754 存储计算浮点型数据。
本次需求
Excel 打开 csv 格式时不将数字进行转换,且能够显示全部,不以科学计数显示。(Mac 上的 Numbers 测试是直接打开显示正常)
首先本地有一个 csv 文件,对于 id,amount 都是精确的数字,目标则是打开此文件并能够正确显示,没有截断。
当使用 Excel 打开此 csv 文件时,已经发现自动对于这么长的数字进行了转换。
对科学计数的数字进行了转换为数字,并将默认的小数两位设置成0后,转换过程中产生的截断。
因此,需要找到一种办法,能够非常方便对数字进行处理,对大的数字不进行处理,因为这些数字可能代表的是不会进行数学计算的 id ,转换后的格式等。
解决方案
打开一个新的 Excel 文档
依据对话框的要求,进行选项选择,核心就是通过逗号分隔让 Excel 知道如何对数据进行分割,另外还需要让
重要的是这里,对于识别的数据应该保存成的格式。为了保证数字不被截断,因此这里选择了文本(Text) 格式,有其它需求的时候可以考虑保存成其它的格式。
然后是选择放置在表格的位置。
最后效果如图,可以完整地显示所有的数字。格式也是文本(Text)类型,并且也未有截断发生。
总结
Excel 对于数学的存储是按照 IEEE 754 浮点数进行存储和计算,对于大的数字会自动按照科学计数法来处理和显示。对于像账户id 这种直接打开时会发生截断和显示不完整,非常影响使用。本文则采用导入的方式避免截断,同时对数字导入时存储为文本,显示也完全。
在 Excel 中,对于数学是默认右对齐,而文本则是默认左对齐的。
还有,使用 Mac OS 中的 numbers
打开,就没有这个问题,微软的开发人员或许能够改进一下?