zoukankan      html  css  js  c++  java
  • Excel 系列一 之 账户类长数字打开不截断与完全显示

    前言

    对于 Excel 的使用,我觉得无论是普通人还是职场上的各类人员,其实都可以算上一个必备课。像中学,大学生可能会使用统计班级人员信息,职场人员需要统计员工信息,产品信息,做一些简单地聚类,聚合计算。

    本次背景

    对于大量的 id 类型,还有对于钱的存储实际上的扩大了十万倍存储,因此在使用 Excel 打开 csv 的时候进行探查,会发现直接将数字进行了科学计算显示。更为严重的情况是将数字的精度进行了截断,会发现像 988882928372492837492364 这样的变成了 988882928372492837490000 之类的情况,这个机制深层原因是 Excel 使用了 IEEE754 存储计算浮点型数据。

    本次需求

    Excel 打开 csv 格式时不将数字进行转换,且能够显示全部,不以科学计数显示。(Mac 上的 Numbers 测试是直接打开显示正常)

    首先本地有一个 csv 文件,对于 id,amount 都是精确的数字,目标则是打开此文件并能够正确显示,没有截断。

    l28ddd816d0f0f

    当使用 Excel 打开此 csv 文件时,已经发现自动对于这么长的数字进行了转换。

    le60eb60093b5e

    对科学计数的数字进行了转换为数字,并将默认的小数两位设置成0后,转换过程中产生的截断。

    l67880788f84dd

    因此,需要找到一种办法,能够非常方便对数字进行处理,对大的数字不进行处理,因为这些数字可能代表的是不会进行数学计算的 id ,转换后的格式等。

    解决方案

    1. 打开一个新的 Excel 文档

      image-20200323092335844image-20200323092545629
    2. 依据对话框的要求,进行选项选择,核心就是通过逗号分隔让 Excel 知道如何对数据进行分割,另外还需要让

      c0e9b8e3f6448

    3. 重要的是这里,对于识别的数据应该保存成的格式。为了保证数字不被截断,因此这里选择了文本(Text) 格式,有其它需求的时候可以考虑保存成其它的格式。

      849ca0cb890a5

    4. 然后是选择放置在表格的位置。

      dd42433ca9e85

    5. 最后效果如图,可以完整地显示所有的数字。格式也是文本(Text)类型,并且也未有截断发生。

      7594bd71d6cf0

    总结

    Excel 对于数学的存储是按照 IEEE 754 浮点数进行存储和计算,对于大的数字会自动按照科学计数法来处理和显示。对于像账户id 这种直接打开时会发生截断和显示不完整,非常影响使用。本文则采用导入的方式避免截断,同时对数字导入时存储为文本,显示也完全。

    在 Excel 中,对于数学是默认右对齐,而文本则是默认左对齐的。

    还有,使用 Mac OS 中的 numbers打开,就没有这个问题,微软的开发人员或许能够改进一下?

  • 相关阅读:
    算法导论13:双向循环链表 2016.1.13
    ansible
    mariadb集群配置(主从和多主)
    连接查询,视图,事物,索引,外键(第四章)
    MariaDB第三章(select)
    mariadb第二章-增删改
    mariadb(第一章)
    keepalived概述
    git操作
    django后台admin管理布局
  • 原文地址:https://www.cnblogs.com/ysmintor/p/excel-xi-lie-yi-zhi-zhang-hu-lei-zhang-shu-zi-da-k.html
Copyright © 2011-2022 走看看