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 当作根目录,用相对路径来访问数据文件。具体的配置界面参见下图:

imagepng

比如,未配置 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,可以设置多个目录,目录之间用分号分隔。


帮你早下班 - esProc 桌面版与 Excel 数据处理
1.2 Excel 文件
1.4 常规数据表运算