xls变xlsb
这个月我突然发现一个很惊恐的现象,我的坚果云的1GB免费上传流量几乎爆掉了,为什么会这样呢?这一个月下来,米叔的东西是有点多,但是我整个文件夹都只有不到300MB,不可能会发生这种情况,而我每天都进行更新的就只有单位的统计数据的东西了。理论上坚果云是增量同步的,所以如果是同一个文件,我在里面新增了东西就同步那些,旧的东西不会再给我同步,但实际上,周末经过两天的观察,我发现情况不是这样的。每天我都会增加十几MB的上传数据,但显然我每天都加进去的东西不可能那么多,每天我加进去的东西顶多几MB而已。为什么会有几倍甚至十几倍的差别呢?昨天晚上我终于发现了原因!因为实际上它并没有传说中的那么神奇,坚果云直接把我更新过的文件重新上传覆盖上去了,不管那个文件里面之前有没有我已经存储过的内容。于是呢,这就让我比较惊恐了,因为我每天都要更新的文件里面有几个文件是MB级的,最大的那个甚至接近9MB,如果每天我都要更新数据,更新的文件达到15MB也就没什么奇怪的了。以每天15MB计算,一个月30天,即便我什么东西都不往里面添,450MB是跑走不掉。我该怎么解决这个问题呢?
这些数据文件绝大多数都是Excel数据表,我用的系统是Office 2003,所以文件是xls。以前我就发现用2007以上的xlsx更大大能节省空间,至于为什么我不知道。之所以仍然选择老版本,一定程度是因为我觉得用的习惯,而另一方面是因为我也曾经试过用Office 2013或者2016,结果发现他们的数据透视表有严重的绝对引用问题。我不知道那个东西在经过一轮又一轮的升级以后有没有得到改善,但显然我今年早几个月做测试的时候,那还相当糟糕,出来的东西完全不是我想要的。幸好那是年头,我只是改了几个数据表而已。据说这是因为xlsx看上去是一个Excel文件,但实际上是一个压缩文件,核心是xml所以它的体积要比传统的xls小起码一半,尤其是但文件里有缓存数据库的时候。xml不是微软自己的东西,有人曾经调侃,在2007版本以上出现的那个xml的绝对引用问题是临时工搞出来的,微软还没有完全吃透那个东西,就把它用在数据里面了。但是,据说如果用的是xlsb,就没有那个烦恼,虽然那个跟xlsx是同一代的产品,但是xlsb是微软自创的二进制的数据表,所以没那么多毛病。用xls保存文件大小是8.5MB,如果用x1sx,大小是二点多,如果用xlsb。文件就只需要一点多。这就意味着,那个东西能做到接近八倍的压缩,所以,如果平时我每天有15MB的数据量,经过这么一压缩,就会只剩下几个MB而已,一个月下来,那些东西顶多200MB就包住了。之前我一直觉得没什么问题是因为单位的数据量远远没有现在这么多,而另外一个情况是我一直很相信坚果云,我觉得xls是很普通的文件,增量同步应该没什么问题的,但显然,他们只是检测了文件有没有变化,如果有变化就整个换掉。到底什么文件上他们才可以做到增量同步呢?难道只能是txt文件吗?如果那样的话就实在太恐怖了。我还要测试一下在新版本的Office 2016环境下,是不是真的用xlsb就没有绝对引用的问题。xlsb对使用office软件的人一点问题都没有,但是如果对方使用的是WPS,非常有可能他们就打不开文件了。之所以这样是因为之前已经说过,那是微软自创的二进制模式,WPS没办法攻克这个也很正常。如果真的这样,我也就只能把只是我自己使用的文件转格式,而发给别人的文件还是用原来的样子。
之前我从来没试过坚果云单月超上传流量,但现在单位的数据真的把我逼上绝路了。