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 汇总文件 - 相同行列
