我正在尝试找到将6个CSV或XML文件合并为一个的方法。但是有一个问题。每个文件有4个公共列(与学生详细信息相关,例如学生ID,学生姓名等)。列的其余部分在每个文件中都不同。
我正试图找出一种方法来组合这些文件,使得4个公共列不会重复。
每个文件在4个公共列中具有相同的行数和相同的数据。
任何人都做过类似的事情,或者有任何建议如何处理它?
答案 0 :(得分:1)
一个简单的解决方案,将两个CSV文件中的数据显示到一个DataGridView ....
Imports System.Data.OleDb
Public Class Form1
Private dt As New DataTable
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim folder = "<Path to the folder of your CSV files (don't include the file name, just the path up to the folder)>"
Dim CnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & folder & ";Extended Properties=""text;HDR=No;FMT=Delimited"";"
Using Adp As New OleDbDataAdapter("select CSV_1.F1 as CSV1_Col1, CSV_1.F2 as CSV1_Col2, CSV_1.F3 as CSV1_Col3, CSV_1.F4 as CSV1_Col4, CSV_1.F5 as CSV1_Col5, CSV_1.F6 as CSV1_Col6, CSV_2.F5 as CSV2_Col5, CSV_2.F6 as CSV2_Col6, CSV_2.F7 as CSV2_Col7 from [CSV_1.csv] as CSV_1 inner join [CSV_2.csv] As CSV_2 on CSV_1.F1 = CSV_2.F1", CnStr)
Try
Adp.Fill(dt)
Catch ex As Exception
End Try
End Using
DataGridView1.DataSource = dt
End Sub
End Class
每个CSV文件中有不同数量的列但是前4列中的数据对于每个列都是相同的(如您所需)此示例的CSV数据应如下所示....(您将当然必须更改代码以使用您自己的CSV文件)
CSV_1.csv应如下所示....
1,John,Doe,100,CSV 1中的数据,CSV 1中的数据
CSV_2.csv应如下所示....
1,John,Doe,100,CSV 2数据,CSV 2数据,CSV 2数据
您可以使用此示例展开并包含其他CSV文件....