4.20 格式转换 - 多个主子表文件合并成两张行式表

 

有很多个主子表,分别把主表拆出来组成一个行式表,子表拆出来,也组成一个行式表

主子表文件示例如下:

Orders1.xlsx:

imagepng

Orders2.xlsx:

imagepng

Orders3.xlsx:

imagepng

拆分后的结果如下:

Orders.xlsx:

imagepng

OrderDetails.xlsx:

imagepng

实现脚本:

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