Office 加载项服务的安装配置说明
使用集算器桌面版的Office加载项服务,可在Excel中使用SPL.X()函数执行SPL脚本并获得结果集后填充到Excel中。
如果是 Windows 系统,请从官网下载最新的集算器桌面版和 Office 加载项补丁包。先安装桌面版,再安装 Office 加载项。
如果是 Mac 系统,桌面版安装包自带 Office 加载项功能。
Office加载项for Windows说明
要求Windows系统和Excel均为64位。
依赖文件
nodejs:Node.js的目录,位于【集算器桌面版安装目录】/esProcDesk
exceladdin:SPLforExcel加载项的目录,位于【集算器桌面版安装目录】/esProcDesk
使用方法
1. 启动集算器桌面版,点击菜单【工具】->【启动Office加载项服务】。
Office加载项服务还可以在启动SPL IDE时自动启动,只需要在选项中勾选【自动启动Office加载项服务】并重启IDE即可。
2. 打开Excel(本例演示使用的 Excel2021 版本号是 2408),在菜单【开始】->【加载项】中加载开发人员加载项SPL for Excel。
结果如图:
3. 在单元格中使用函数=SPL.X()。
4. 如需使用Excel复制/粘贴功能,可以在SPL IDE选项中修改Excel加载项类型->Office加载项。
常见问题
1. Excel的【开始】菜单的工具栏没有加载项。
打开Excel,首先在【文件】-> 【选项】->【自定义功能区】->【主选项卡】的【开始】中,找到【加载项】并勾选。
如果找不到【加载项】,点击【文件】->【账户】->【更新选项】->【立即更新】,更新或升级Excel。
2. Office加载项程序有修改时,更新依赖文件后修改没生效
清理缓存,删除目录C:\Users\$\color{red}{[用户名]}$\AppData\Local\Microsoft\Office\16.0\Wef下的所有文件
Office加载项for Mac说明
要求Mac系统和Excel均为64位。
依赖文件
nodejs:Node.js的目录,位于/Applications/esProcDesk.app/Contents/raqsoft/esProcDesk
exceladdin:SPLforExcel加载项的目录,位于/Applications/esProcDesk.app/Contents/raqsoft/esProcDesk
startdevserver.sh、stopdevserver.sh:启动和结束dev-server,用于支持SPLforExcel加载项。位于/Applications/esProcDesk.app/Contents/raqsoft/esProcDesk/bin
创建硬链接
将exceladdin根目录的清单文件manifest.xml链接到Excel的wef目录下。
在终端执行ln命令:
sudo ln '/Applications/esProcDesk.app/Contents/raqsoft/esProcDesk/exceladdin/manifest.xml' '/Users/$\color{red}{[用户名]}$/Library/Containers/com.microsoft.Excel/Data/Documents/wef/a5f6b5ea-9bf1-4a7c-97ac-1759754457c3.manifest.xml'
注意:
-
$\color{red}{用户名}$要修改成自己的。
-
wef目录有可能不存在,需要手动创建。
-
修改exceladdin/manifest.xml文件时会同步修改wef下的对应文件。如果删除或替换了exceladdin/manifest.xml文件,wef下文件不再同步。
使用方法
1. 启动集算器桌面版,点击菜单【工具】->【启动Office加载项服务】。
Office加载项服务还可以在启动SPL IDE时自动启动,只需要在选项中勾选【自动启动Office加载项服务】并重启IDE即可。
2. 打开Excel(本例演示使用的 Excel for Mac 版本号是 16.89),在菜单【开始】->【加载项】中加载开发人员加载项SPL for Excel。
结果如图:
3. 在单元格中使用函数=SPL.X()。
常见问题
1. Excel的【开始】菜单的工具栏没有加载项。
首先在【Excel】->【偏好设置】-> 【>功能区和工具栏】->【主选项卡】的【开始】中,找到【加载项】并勾选。
如果找不到【加载项】,则更新或升级Excel。
2. Office加载项程序有修改时,更新依赖文件后修改没生效。
清理缓存,删除下面两个目录中的文件:
/Users/$\color{red}{[用户名]}$/Library/Containers/com.microsoft.Excel/Data/Library/Caches
/Users/$\color{red}{[用户名]}$/Library/Containers/com.microsoft.Excel/Data/Library/Application Support/Microsoft/Office/
SPL.X()语法
安装配置好之后,Excel中会增加函数SPL.X(),其功能是在Excel单元格中执行SPL脚本并获得计算后的结果集。SPL.X()的返回值为单值、一维数组或二维数组。
SPL.X()有两种语法:
-
SPL.X(exp, arg1, …)
参数说明:
exp |
以=开头的SPL语法的表达式串。其中用问号代表参数引用,?1对应第一个参数,?2对应第二个参数,依此类推。 |
arg1,… |
参数值,参数可以有0个或多个,至多30个。可以填入常数,或引用当前Excel单元格,允许单格和片区。 |
示例:
如下Excel文件,第一列是随机数的范围,第二列是根据第一列给定的范围,生成一个相应范围内的整数随机数:
计算结果:
把B2单元格拖动复制到每一个格子,结果如下:
复杂计算需求,执行用SPL写好的脚本文件,格式为:
-
SPL.X(splxName(…), arg1,…)
参数说明:
splxName() |
脚本文件名称,无后缀,统一用.splx,且必须加上()。脚本文件中定义的参数,按顺序和后面赋予的参数匹配。 支持相对路径或绝对路径,相对路径相对于SPL IDE主目录 |
arg1,… |
同前面规则 |
示例:
可以在SPL.X()函数里直接调用SPL脚本文件。我们把SPL脚本文件存为【SPL IDE主目录】\Sales.splx
参数:
然后在Excel的A1单元格中写入如下表达式:
当参数有多个时,脚本有几个参数,括号里就写几个问号,和传入参数的对应关系规则与直接写代码是一样的,都是?1对应第一个参数,?2对应第二个参数,依此类推。
结果如下:
Office/Excel加载项的异同
1、 Office加载项和Excel加载项适用平台不同。
Excel加载项支持Windows,Office加载项支持Windows和Mac。
2、 Office加载项函数SPL.X()和Excel加载项函数spl(),函数名不同,函数功能和语法相同,更多使用方法可参考Excel加载项的示例【Excel 插件使用说明】。
返回值为一维数组时,二者的扩展方式在设置上有所不同:
Excel加载项扩展方式默认为纵向,可以在Excel中点击菜单【加载项】-【SPL】-【Show Setting…】勾选【Horizontal display】,改变扩展方式为横向扩展。
Office加载项扩展方式默认为纵向,可以在Excel中点击菜单【开始】-【加载项】-【SPL for Excel】勾选【单层序列时横向扩展】,改变扩展方式为横向扩展。
😄 谈谈安装新版的感受:
新版安装,本机耗时 5 分 30 秒 (感觉有点长),安装后的文件夹大小 890m,扩大了一倍多,原来我记得差不多是 300m 左右,新的 exceladdin 占了一半空间。
新加载项执行 SPL.X()会有短暂的 BUSY 字样出现,感觉没有 spl() 丝滑,是不是跟那个 nodejs 服务器有关,且必须在开启 SPL IDE 情况下才能使用 SPL.X。
桌面版新增的 office 加载项功能,依赖文件多了很多,因此安装和卸载时,用时有所增加,安装后所占空间也大。确实影响了安装体验,后续我们逐步优化。
计算时间长时 excel 会返回 BUSY 提示。
目前需要通过 SPL IDE 启动加载项服务,所以不能关闭 SPL IDE。
OFFICE 的跨平台接口就是这个鬼样,目前没找到更好的机制,WIN 上就别用它了,MAC 上没办法,总比没有强
感谢老贼,swan 大佬回复🙏 🙏
MAC 版 office 就是垃圾,啥也不是,VBA 好多对象用不了,最常用的字典都不行,几年前说要整合 PQ,mashup 引擎提升 30% 速度,结果弄了一个 4 不像,鬼佬就是特么的鬼话连篇(也有可能是阿三搞的)😂 PQ 也躺平了,最近几年啥更新都没有,毫无速度效率可言,嫌弃的很,唯独 PBID 和 DAX 有更新,割韭菜。
MAC OFFICE 上能用 SPL 加载项绝对会方便不少,但 MAC 上用 office 的好像不多,excel 重度依赖患者,会装个 WIN 虚拟机在 WIN 上用 excel。
英文版