2025-08
31

可能打不开xlsb

By xrspook @ 8:52:51 归类于: 烂日记

前几天的某个晚上,我用单位宿舍的那台迷你主机同步了坚果云,然后试图用那台机子去核对当天的数据,结果却发现某些文件打不开。倒也不是真的打不开,而是打开的时候会显示文件有错误,需要处理,处理之后文件里的数据大量丢失,从那个修改或者删除的文本看来,是因为有些东西被删除掉了,所以数据就丢失了。但不是每个文件都打不开。那天之所以要尝试核对数据,是因为我忘记了办公室那台电脑已经关机了。通常情况下,在宿舍核对数据,我会远程连接办公室的那台电脑,所以宿舍的那台电脑虽然有装office,但不需要使用。

几个月前,因为Microsoft 365家庭版的故障使得office无法打开、无法使用,而除了那个版本以外,其它版本的office不受影响,所以从那个时候开始,无论是在家里还是在单位。我都是一台电脑部署Microsoft 365,另外一台电脑部署Office 2021 proplus,用的是MAK激活。装完office打开文件,没有发现问题。不过准确来说,我安装那个版本以后并没有做完整的测试,我只是测试了某些功能某些公式。刚好在我测试的时候,打开的那些文件都是正常的。这一次打开的文件不正常,那个时候我想到的是如果我把那个打不开的文件用别的东西另存为一个格式,是不是就能打开呢?我尝试用手机的Microsoft 365 app,貌似那个玩意可以另存为,但居然不能改变文件的后缀,就是不能用其它格式保存。为什么居然会这样呢?另存为不仅仅是换了一个文件名,而是要换其它格式。如果我要换一个文件名的话,我用的是重命名。不知道微软是怎么想的。出现这样的状况,我说不准是不是因为宿舍的那台win11专业版说要升级,结果一个月都卡在那里毫无动静。文件打不开会不会跟那个东西有关,说不准。

某个晚上,我特意尝试了一下远程连接办公室那台电脑,把宿舍这台电脑打不开的那个文件在办公室那台电脑上文件另存为另外一个Excel格式。结果发现宿舍这台电脑就打开了,毫无难度,但是当我用办公室的那台电脑把已经另存格式的文件再另存为原始的那个格式,宿舍这台电脑又打不开了。所以这到底是什么毛病呢?当我把宿舍这台电脑能打开的那个格式另存为它打不开的那个格式的时候,当然宿舍这台电脑是可以打开的,办公室那台电脑也能打开。这样倒一倒手一点问题都没有,但关键是我根本不知道哪些文件能打开,哪些文件不能打开,不能打开的原因是什么。没办法找到确切原因我就没办法避免这个问题的发生。当我打不开这个文件的时候。我去哪里找能打开这个文件的那个office给我另存为呢?

第1次发现某个文件宿舍那台电脑打不开的时候,第2天我就把那个文件发送给了我的同事,她的那台电脑是win11,自带的Office 2021家庭版,她的那个电脑打开那个文件没有任何问题。所以这个就很诡异了,到底是什么原因导致宿舍这台电脑打不开那个文件呢?我尝试更新宿舍那台电脑的office,告诉我已经是最新的版本,但是因为那是一个MAK激活的office,用的更新频道是LTSC。Microsoft 365或者Office 2021家庭版用的都是零售的更新渠道。宿舍的那台电脑的Office 2021密钥除了LTSC以外,还有一个零售版的。如果我没猜错的话,安装零售版的Office 2021,我就可以正常打开那些文件,但我个人觉得用MAK激活的LTSC会更稳一些。理论上的更稳,实际上某些文件打不开,简直让人无语。

暂时我发现打不开的那些文件都是二进制xlsb的,普通的xlsx都是没有问题的。为了让文件可以减肥,我很多大数据的文件都用了xlsb保存,这个习惯我已经保持了5年以上。突然跟我说这个不太稳妥,可能打不开,修复了以后文件数据会丢失,我无法接受。但或许Office 2021 LTSC更新了以后就又能打开那些文件了。但到底这个什么时候才发生?会不会发生?我只能继续观望。 win11的LTSC Office 2021是这样,win10笔记本电脑上面的同一版本的office也这样。笔记本电脑说不准我什么时候需要异地办公,不能冒这个风险,于是我只能暂时卸载掉LTSC更新的Office 2021 proplus,装回Microsoft 365。

微软越来越神经了。

2023-07
28

跨表查询python版搞定

By xrspook @ 22:30:18 归类于: 烂日记

花了一整天的时间去做python版本的发跨表查询,最终还真的被我做到了,唯一有点小瑕疵的就是出入进度里我还没有实现批次小计。我基本已经想好需要一个什么样的数据处理,但是怎么把那些东西结合起来我还没有一个成熟的思路,估计会有一些类似的案例,我可以参考一下。

之所以这个脚本居然用了一整天,是因为最后我算了一下字数,居然有4000多字。因为我用的是VSCode,所以实际上敲代码已经很高效了,因为几乎所有符号都会配对出现,一旦有手误的地方基本上都会提醒,但是有些东西是VSCode不会提醒我的,比如我要用到pandas各种格式的数据,有些事不能直接用print打印出来的,必须要用个循环才能把那些东西展示出来。如果我用python处理Excel,我会用xlwings进去,然后用pandas。之所以用xlwings,因为这个东西支持Excel的版本比较多,老一点的插件有的只支持xlsx有些不支持xlsb,有些仅仅支持xls,而我选择的这个xlwings基本上我用的Excel格式都支持了。现在我主要用xlsx和xlsb。因为做这个python查询之前,我已经在PQ和PP上做了两遍,所以我完全知道自己要做些什么,但具体那些东西该如何实现,应该用什么样的表达式去实现,是我花时间的地方。

昨天之前我对pandas里面的dataframe并不太熟悉。我知道那个结构很类似于Excel的表格,但实际上用起来又跟表格不太一样。我觉得那个东西最好的地方就是不像PQ那样,经常被高手套叠起来,于是你想半天都搞不懂那到底是什么。作为一个不是python新手的人,我还是喜欢用短语句完成,然后再连接起来。自学python让我觉得最成功的地方在于我喜欢用for循环,而且还非常习惯使用套叠循环。如果在我大二学C语言的时候,我也能把循环玩得这么溜。估计我就不会为冒泡法这种东西发愁了。

虽然花了一整天时间,才终于把这个东西整出来,但我个人感觉还是比较愉快的,尤其是敲代码的过程,因为相对于在Microsoft 365的PQ或PP的编辑器里面敲代码,VSCode里敲代码实在太爽了。PP会经常提醒我公式错误,因为PP那个你看不到的循环实在会把你整得很惨。PQ里我不过是删了个文字,不知道为什么它会自动给我加半边括号,所以搞了半天,我都搞不懂自己到底哪里错了,最后发现不知道为什么,多了个括号,又或者在调整某些语句的时候多了或少了个逗号。英文和中文逗号在编程的世界里是有区别的,在VSCode里可以看得很清楚,但在PQ的高级编辑器里。因为字体太小,你还没办法快捷变大,非常折磨我这种眼睛不太好的老人家。

高中的时候我的数学老师经常一节课就只讲一道题,他会用很多方法把那道题解出来。现在,我也喜欢上了这种别人可能非常难理解的行为。

2018-11
20

xlsx与xlsb

By xrspook @ 9:26:05 归类于: 烂日记

昨天我把平时都要更新的大型数据文件都从xls转变为xlsb。之前的那个文件没有删掉,而是把它记下最后的日期,放到某个地方,今天开始在新的文件里更新数据。到昨天为止,这个月坚果云的使用量是899MB。经过这样的数据转换以后,理论上,单位每天更新的数据应该不会超过5MB,除非有特殊情况,比如说要写一个比较大型的报告之类的,而里面又有很多图。如果Excel表格里面有很多图,估计就没办法缩小体积了吧。Excel可以在后面加个b缩小体积,那么Word可不可以也这么干呢?真的能把图片压缩吗?估计今天我得研究一下。格式转换的操作我是在Office 2003上面完成的,当然这必须得装一个转换插件才能正常运行,我顺便在WPS 2019上测试,打开xlsb文件没问题。我也把那个东西发给了在用WPS 2016的同事,她打开也没有问题。最后我在我的新笔记本电脑上也试着打开一下,同样没有问题,当我把xls文件转变为xlsx文件,在新的笔记本电脑上进行各种复制,结果发现数据透视表没有绝对相对引用的问题。也不知道是前天还是昨天我看到这么一条消息说Office 2016推荐的系统版本是Win10,几乎可以说,那个东西是Win10的定制版本,而Win7和Win8推荐的Office系统是2007或2010。于是这也就容易理解为什么我新笔记本电脑上的Office 2016没有数据透视表绝对引用的问题,但是在Win7上面哪一台机都有问题。不只是2016,2013也存在同样的问题。所以得出这么一个结论,如果要顺畅地使用2016,我的系统最好用Win10。估计这不是Office补丁补丁的问题,它们是配套使用的,虽然Win7和Win10都有32位和64位两种系统,但鬼知道Win10在Win7的基础上又改动了些什么。Office 2016之所以出现绝对引用地址的问题,是Windows的office模板那里有毛病。我不知道笔记本上的预装Windows以及office系统是怎么装上去的,估计不是人手一台一台来,但显然他们装上去的步骤是一个整套的流程,是一体的。现在卖的笔记本电脑基本上都是正版的家庭版Win10外加家庭版的Office2016。虽然现在最新的office应该是2019,但是微软最推荐你使用的是Office365。显然,买笔记本电脑的人估计不会愿意每年都给一笔费用使用Office365,所以2016就算是个比较稳定靠谱的选择。之前我已经听同学说过她的一些同事有些人用Office 2016没问题,但有些人有问题,我觉得估计不是软件版本的差异,而是他们Windows系统的差异,因为有些人用的Win7,而有些人用的Win10。

今天我之所以选择xlsb,而不选择更通用的xlsx是因为我知道xlsx文件在2016上用数据透视表,有可能出现绝对引用的问题,但现在显然在我唯一一台装了2016的电脑上没有问题。我需要把它换回来吗?其实没这个必要,因为xlsb文件的体积大概只有xlsx的一半。b和x的区别在于,b是二进制的工作簿,在一些软件上打不开,在没有安装office的前提下,x文件你还可以改它的后缀,改成zip文件,然后解压浏览里面的东西。x文件的通用性显然更强。但对我来说,我是不装office会死星人,所以这根本不成问题。b结尾的文件一般软件打不开,所以一定程度上是不是二进制的工作簿安全性更好呢?而之所以一个体积比另外一个大,是因为x文件里除了数据本身还有各种各样的xml格式。

微软这个博大精深的东西,即便我愿意花钱买2016,但只要我的Windows系统还是win7结果还是会死得很惨,所以想花钱也不能随便花。

2018-11
19

xls变xlsb

By xrspook @ 10:24:57 归类于: 烂日记

这个月我突然发现一个很惊恐的现象,我的坚果云的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没办法攻克这个也很正常。如果真的这样,我也就只能把只是我自己使用的文件转格式,而发给别人的文件还是用原来的样子。

之前我从来没试过坚果云单月超上传流量,但现在单位的数据真的把我逼上绝路了。

2018-04
20

Office 2016的烦心事

By xrspook @ 9:04:36 归类于: 烂日记

前天下午开始,我就在旧电脑上测试使用Office 2016。之前我已经在那台机上试过用2013,但是因为2013那个明显的漏洞我无法接受,所以即便我在办公的电脑以及家里的电脑装上了,还是把那果断删掉。现在回想起来,当时是有点太紧张,因为测试的时间还很短,对我来说,电脑能不能装2013是最重要的,但我却没有料想到,2013装上去以后,某些对我来说非常重要的功能存在严重缺陷。2013数据透视表的问题依然传递给了2016,但这次之所以我敢去测试,是因为我大概已经知道了解决方法。所以在旧机子上装上2016以后,我赶紧试试一下那些方法可不可行。那个严重缺陷是当你从旧版本2003的xls文件另存为2007开始用的新格式xlsx以后。数据透视表引用的源数据地址会默认乱套。从新建的那个新文件开始,默认数据透视表引用的地址会变成了一个绝对地址。这样,会让人非常崩溃,因为这就意味着当你把文件复制,所有透视表都失效,你无法在上面更新数据刷新效果。在桌面复制的文件存在问题,云同步的也存在问题,但如果你打开软件之后用里面的另存为就没有问题。这个问题在2013之前的版本2010上没有发生过。据说明年就会出2019了,我觉得即便到了2019,问题依然会存在,因为一定程度上他们的工程师已经放弃了对旧版本xls文件的支持,当然不会掏心掏肺地在那里花时间。经过那一次以后,我认真查找了有什么解决办法。首先第一步是开始使用之前就把2016的模板文件替换掉。也说不准是不是模板文件的问题。反正我就真的是一装完以后就马上替换掉。替换掉以后,可能在新软件下生成的数据透视表没问题,但是从旧文件另存为的文件还是有问题。所以解决办法是新建一个文件,然后从旧文件里全选所有工作表,复制到新的文件里。这样操作新文件里面的数据透视表指向的地址肯定是错的,你得把全部改一遍。改完以后,这个文件就算是适应了2016,往后无论是另存为还是桌面复制都不会存在任何问题。为什么要进行这种傻瓜操作呢?这跟另存为有什么不一样吗?作为一个纯粹的软件使用者,我搞不懂。我也试过把旧文件另存为以后在新文件里把数据源全部改一遍,但这样依然不行。虽然麻烦,但总算找到了解决这个很让我头痛的问题的方案。

之所以用2016,而不是2013,其中一个很重要的原因是2016里新增了几个数据图,比如树状图、旭日图、直方图以及箱式图,还有就是Power系列已经是2016的一部分,不需要额外加载。2016能插入地图。虽然能插入,但是可能在功能选择上会比用Office 365更新出来的2016功能少。同样叫做Office 2016,但是Office 365的2016就要比买断版的2016的内容要丰富。我既然已经买下了2016这个版本的使用权,为什么升级的时候我不能使用那些功能呢?!除非你又出了一个2019,然后Office 365更新的是2019,那么2016用不了那些功能我认。

2013的破解虽然有些可以有些不可以,但总体来说还比较顺利,但2016的破解,貌似我没找到一个可以永久的方法,如果用KMS软件,每180天还要重新激活一遍,显然这很烦。因为说不准那个软件哪一天就不小心被杀毒软件干掉了。其实,就个人而言,入手家庭版的2016价位是可以接受的,但问题是我要在家里也要在单位办公室的电脑上操作,总不可能叫我买两台电脑的使用权吧。我付家里那台电脑的钱是理所当然的,但是如果单位这台电脑的也要我付,我就觉得心理很不平衡了。就个人用户而言,不开票也不用其它什么手续,价格只要149,但是如果什么手续都要办全以后,可能价格就要到599。价格相差了一大截。但是如果没有那些手续,单位的软件根本没办法报销。所以最终,如果硬要用这个软件的话,可能单位的人会让我用那个180天要重新激活一遍的破解版。以前破解出来的Office软件没有180天这个限制,但现在2016都这样了,我不觉得2019还会有什么新进展。而且如果2019出了,大家破解的力度就不会在2016上,所以更加不可能突破这个180天的限制。说真的,如果这个软件是好用的话,我愿意去掏那一百多块钱。

32位的2016在32位的Win7 2GB内存的系统下运行比较卡,文件打开的时候比较卡,操作的时候也有可能会卡。我觉得如果装内存8GB的Win7 64位系统上应该没问题,但如果装在内存4GB的32位Win7上很难说。如果我用上了2016以后,我那XP的上网本,就不可能编辑到新文件的新增功能了。不过话说回来,对我来说那些新增功能的使用几率其实不算很高。所以既然使用几率不高,为什么我非得换一个版本呢?如果我只是喜欢2016的图,我完全可以在我有需要的时候用某台电脑去做图,虽然这样挺麻烦。2016有一些新增的公式,虽然我很想用那些功能,但不嫌麻烦用以前通用的公式各种迂回还是能做到同样的效果。

以前电脑上换某个软件的时候根本没有这么多烦恼,只管用就是了,但现在要照顾的东西太多。

© 2004 - 2026 我的天 | Theme by xrspook | Power by WordPress