将两个 csv 文件按同名字段对齐合并

例题描述和简单分析

有 txt 文件 data1.txt,如下:

ID,Name,LastName,Department

12345,John,Samon,Computer Science

14524,David,Souza,Electric and Electronic

有 txt 文件 data2.txt,如下:

ID,Q1,Q2,Q3,Midterm,Final

12345,100,90,75,89,100

14524,80,70,65,15,90

两份数据的 ID 一对一关联,生成新文本文件如下:

ID,Name,avgQ_Average,Midterm,Final,Department

12345,John,88.33,89,100,Computer Science

14524,David,71.67,15,90,Electric and Electronic

解法及简要说明

在集算器中编写脚本 p1.dfx,如下所示:


A

1

=file("data1.txt").import@ct()

2

=file("data2.txt").import@ct()

3

=join(A1:data1,ID;A2:data2,ID)

4

=A3.new(data1.ID,data1.Name,round(avg([data2.Q1,data2.Q2,data2.Q3]),2):avgQ_Average,data2.Midterm,data2.Final,data1.Department)

5

=file("mergedFile.txt").export@ct(A4)

简要说明:

A1  读取 txt 数据

A2  读取 txt 数据

A3  A1和 A2 的根据 ID 一对一关联

A4  按要求计算出结果序表

A5  结果导出至mergedFile.txt

JAVA 集成这段代码的方法可参考:《Java 如何调用 SPL 脚本》

问答搜集

https://stackoverflow.com/questions/56187795/how-can-i-take-the-length-from-the-text-files-in-java