常见的Excel数据表,都是数据记录位于行方向,即记录数据都在同一行。但也有一些特殊的Excel表格,数据记录是位于列方向。要生成这种表格,需要先将序表列标题和数据进行行列转置,然后用SPL中的xlsexport@w函数来保存。
举例
有财务数据表book1.xlsx,数据如下图所示:
现在需要重新生成如下图所示的表格:
编写SPL脚本:
A | |
---|---|
1 | =T("E:/work/book1.xlsx") |
2 | =[A1.fname()]|A1.(~.array()) |
3 | =transpose(A2) |
4 | =file("E:/work/book2.xlsx").xlsexport@w(A3) |
A1 读入book1.xlsx文件数据成为序表
A2 把A1的字段名序列与各行记录值序列合并成序列的序列
A3 把A2进行行列互换
A4 将A3保存到文件book2.xlsx,选项@w表示要写出的对象A3是序列的序列
如果只是把表格转过来,也可以不用读成序表式的结构化数据,例如编写SPL脚本:
1 | =file("E:/work/book1.xlsx").xlsimport@w() |
---|---|
2 | =transpose(A1) |
3 | =file("E:/work/book2.xlsx").xlsexport@w(A2) |
A1 读入book1.xlsx文件数据,选项@w表示将数据读成序列的序列
A2 把A1的序列进行行列互换
A3 将A2保存到文件book2.xlsx,选项@w表示要写出的对象A2是序列的序列