1.3 文件和目录
1.3.1 解析文件名
函数 filename 可解析出文件名的不同部分:
A | |
---|---|
1 | =filename(“D://file/test.splx”) |
2 | =filename@e(“D://file/test.splx”) |
3 | =filename@n(“D://file/test.splx”) |
4 | =filename@d(“D://file/test.splx”) |
A1 带扩展名的文件名:test.splx
A2 扩展名:splx
A3 无扩展名的文件名:test
A4 路径:D://file
已知文件名的各部分,可用 concat 函数拼出全路径。比如:
A | |
---|---|
1 | =concat(“D://file/”,“test”,“.splx”) |
A1 全路径: D://file/test.spx
1.3.2 遍历文件
某目录下有一批 Excel 文件,这些文件的第 1 个 Sheet 存储着订单数据,且结构相同。现在要将这些订单合并到新的 Excel 中。
SPL 脚本:
A | |
---|---|
1 | =directory@p(“d:/data/*.xlsx”) |
2 | =A1.conj(file(~).xlsimport@t()) |
3 | =file(“d:/result.xlsx”).xlsexport@t(A2) |
A1:搜索目录下所有扩展名为 xlsx 的文件名,@p 表示返回全路径。
A2:按文件名循环读入 Excel,再合并数据。
函数 directory 还有更多功能,比如用 @s 选项递归搜索子目录,用 @d 选项列出子目录,用 @r 删除目录,用 @m 创建目录。
1.3.3 系统目录
前面的例子中,我们使用全路径来访问数据文件,如果配置了系统目录中的 main path,则可以将 main path 当作根目录,用相对路径来访问数据文件。具体的配置界面参见下图:
比如,未配置 main path 时,脚本为:
file("d:/data/p/orders.xlsx").xlsimport()
配置 main path=d:\data,则脚本可写作:
file("p/orders.xlsx").xlsimport()
如果没有配置 main path 而直接用相对路径,则实际的 main path 是启动集算器的目录,直接启动集算器时(或通过快捷方式启动),该目录是 [集算器安装目录 \bin],双击.splx 文件间接启动集算器时,该目录是脚本文件所在的目录。使用下面的脚本可取得当前 main path:
filename@p("")
除了 main path 之外,集算器还有其他较为重要的系统目录。
temp:计算引擎存放临时文件的目录,如果没有设置,则默认使用操作系统临时目录。
searching path:脚本文件的根目录,包括了 main path,可以设置多个目录,目录之间用分号分隔。
1.3.2 例子中 directory 拼写错误
已更正,多谢指正!