(已解决) 集算器桌面版安装包和外部包的问题

大佬们,早上好!😄

注意到集算器有了最新版,更新安装后发现桌面版的有些包还是旧的,如下:

1、ZipCli 外部包用的是去年的,在桌面版中使用 Zip_Open() 等此类函数操作时会报错,需手动更新到当前最新的外部包才能正常使用。安装后的 ZipCli 包的内容如下:

imagepng

以下是最新的 ZipCli 包:

imagepng

2、说到 ZipCli,一直想问 zip_close(zip_open 对象) 这个语句是不是不能用在 for 循环中?

如下所示,从一个文件序列中,用 for 循环抽取,zip 对象 open 一次 close 一次,直觉上这个操作应该是对的吧?但报错了,如果把 B6 中的 zip_close(B3) 删掉,就能正常运行。

imagepng

同样的,在循环函数中也是如此:

imagepng

但是,用 fork 语句时,就不会出现问题:

imagepng

3、既然提到了外部包,还有一个关于 HiveCli 的问题顺便一起求助了吧,省得一直惦记。用 HiveCli 中的 parquet 函数读取 parquet 文件时,路径的使用好像有问题:

a、file().parquet() 不能使用相对路径

比如以下两种写法都会提示文件不存在:

=file("../lineitem.parquet").parquet(;;9)

=file("lineitem.parquet").parquet(;;9)

写全路径后 (Mac 系统写法) 就可以读:

=file("/Users/bianqi/Downloads/lineitem.parquet").parquet(;;9)

b、如果是在 Mac 系统下的 Windows 虚拟机中使用,除了相对路径识别不了,写全路径时有一种情况不能读,比如,虚拟机中有一个 Downloads 文件的路径是这样的,图片最后一个:

imagepng

意思是有两种路径指向 Downloads 文件夹:

>>  \\Mac\Home\Downloads
>>  Z:\Downloads

但 parquet 读取时只认这种 Z: 的写法,以下两种写法都可以读出结果:

=file("Z:/lineitem.parquet").parquet(;;9)

=file("Z:\\lineitem.parquet").parquet(;;9)

用 \Mac\Home\Downloads 这种写法识别不出来:

=file("//Mac/Home/Downloads/lineitem.parquet").parquet(;;9)

=file("\\\\Mac\\Home\\Downloads\\lineitem.parquet").parquet(;;9)

其它格式的文件不管哪种写法都能识别出来:

=file("//Mac/Home/Downloads/color2.xlsx").xlsimport@w()
=file("\\\\Mac\\Home\\Downloads\\color2.xlsx").xlsimport@w()
=file("Z:\\color2.xlsx").xlsimport@w()
=file("Z:/color2.xlsx").xlsimport@w()
=file("../color2.xlsx").xlsimport@w()
=file("..\\color2.xlsx").xlsimport@w()

4、以下两个文件跟 Excel 插件有关,都有更新过,但最新安装包里还是用的旧文件:

一个是 scu-excel-xll-2.10.jar 文件,最新的是 2025 年 4 月 15 日的,用于更新插件函数 spl() 中的参数问题,具体可见帖子: (已解决) 插件函数 spl(exp,arg1,…) 中的参数问题

imagepng

另一个是 bin 文件夹中的 ExcelSpl.xll 文件,最新的是 2025 年 4 月 16 日的,这个应该是用于插件中的写日志以及删除日志的问题,退出 Excel 后,日志文件会自动删除。

imagepng

恳请大佬们空闲时看看上述问题,桌面版中的包官方会适时更新,还是需要使用者安装后手动更新。有些问题对只会写几个函数的小白来说太懵圈了,恳请大佬们给予帮助!🙏