使用VB合并多个CSV或XML文件的最简单方法是什么?

时间:2016-03-04 17:41:32

标签: xml vb.net csv

我正在尝试找到将6个CSV或XML文件合并为一个的方法。但是有一个问题。每个文件有4个公共列(与学生详细信息相关,例如学生ID,学生姓名等)。列的其余部分在每个文件中都不同。

我正试图找出一种方法来组合这些文件,使得4个公共列不会重复。

每个文件在4个公共列中具有相同的行数和相同的数据。

任何人都做过类似的事情,或者有任何建议如何处理它?

1 个答案:

答案 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文件....