4.20 格式转换 - 多个主子表文件合并成两张行式表
有很多个主子表,分别把主表拆出来组成一个行式表,子表拆出来,也组成一个行式表
主子表文件示例如下:
Orders1.xlsx:
Orders2.xlsx:
Orders3.xlsx:
拆分后的结果如下:
Orders.xlsx:
OrderDetails.xlsx:
实现脚本:
A | B | |
---|---|---|
1 | =directory@p(“Orders/Order*.xlsx”).(file(~).xlsopen()) | |
2 | =create(OrderID,OrderDate,CustomerID,EmployeeID,Consignee,ShipAddress) | |
3 | =create(OrderID,ProductID,ProductName,UnitPrice,Quantity,Discount,ExtendedPrice) | |
4 | for A1 | =A4.xlsimport@t(;1,6).select(ProductID).derive(A4.xlscell(“B1”):OrderID) |
5 | >A2.insert(0,A4.xlscell(“B1”):OrderID,A4.xlscell(“E1”):OrderDate,A4.xlscell(“B2”):CustomerID,A4.xlscell(“E2”):EmployeeID,A4.xlscell(“B3”):Consignee,A4.xlscell(“B4”):ShipAddress) | |
6 | >A3.insert@f(0:B4) | |
7 | =T(“Orders/Orders.xlsx”,A2) | |
8 | =T(“Orders/OrderDetails.xlsx”,A3) |
A1:列出 Orders 目录下以 Order 开头的.xlsx 文件,并挨个打开
A2:产生主表序表
A3:产生子表序表
A4:挨个循环 A1 中的文件
B4:读出文件中第六行开始的数据,返回序表,并添加 OrderID 列
B5:逐个读出文件中主表的数据,插入 A2 中
B6:把 B4 中读出的子表数据插入 A3 中
A7:把主表序表 A2 写出到文件 Orders.xlsx 中
A8:把子表序表 A3 写出到文件 OrderDetails.xlsx 中
帮你早下班 - esProc 桌面版与 Excel 数据处理
4.19 格式转换 - 多个卡片式文件合并成一张行式表
4.21 汇总文件 - 相同行列