EXCEL和数据库数据不一致的一些原因和解决

天天从数据库里面导入到EXCEL,遇见一大堆问题:

XLS最多支持6W多条,XLSX超过100W。但是实际上:超过6WEXCEL非常卡。
渲染一个100M的EXCEL两三分钟,打开以后能看不能改,改动当场卡死。
复制黏贴功能严格依赖剪贴板,而剪贴板直接放在系统内存,超过70M系统不开始不稳定。

EXCEL处理文件的速度,完全不是一个量级的。
有人说:你可以不用啊,数据库那么NB。
但是问题是:别人给你EXCEL格式的数据,你能不用EXCEL吗?你没法决定格式的来源啊。

第二,从数据库导出数据,修改EXCEL格式。
绝大多数人都是剪贴板转入,然后EXEL会揣测传入数据的格式。
如果你是float,就给你去零去精度。
如果是文本字符串,长文本仍然给你转化成数字(比如说身份证号)转化成科学计数法给你去零(身份证、手机号给你去个零很开心)
如果是日期,就给你转化时间格式,给你把秒信息不显示。
而且:支持的时间格式是:YYYY-MM-DD HH:SS,缺少秒信息。

而且你不能指定(或者说很难指定),或者保存为文本保留原格式或者接受EXCEL默认格式。

第三,文件拆分。
由于EXCEL不支持大文件,所以通常都是一个大压缩包,里面有几十个或者几百个EXCEL。
然后导入到数据库进行二次分析。
绝大多数人都不用支持大文件的TXT、CSV、JSON串等,就会用一个EXCEL。大数据处理当场拉胯的不行。

第四,空行补齐
从EXCEL复制,然后粘贴的时候会变成图片。
然后:不是所有网页都有黏贴文本的功能。
EXCEL和数据库数据不一致的一些原因和解决_第1张图片
开心的一匹。
需要从EXCEL转化到剪贴板,然后重新粘贴。

第五,脚本功能弱化。
数据库里面一个join的事情,脚本需要用VLOOP。
都说VLOOP很强,但是实际上:不强。速度还是非常慢。

第六,类型混乱。
数据库的好处是:数字是数字,标题是标题,各种类型是强类型,数据处理起来非常舒服。
处理数据的时候,数字中间不可能有文本,加和稳定。
而EXCEL,标题文本混乱。
标题不一定在第一列。可能在第二列、第三列等。
然后汇总在最后一列。也可能没有汇总。


解决方式:
导入到EXCEL之前,将所有需要格式保护的数据concat一个小冒号。
这样可以保证从数据库导入的时候格式不变化。

第二种,使用CSV格式作为导入导出的标准格式。(EXCEL也能够打开CSV文件)其他任何能保留格式的文件(JSON等)

你可能感兴趣的:(EXCEL和数据库数据不一致的一些原因和解决)