2

2 つの .CSV ファイルをインポートしてマージする必要があるプロジェクトで作業しています。andを
使用して CSV1およびCSV2 ファイルをインポートしましたが、完全に機能します。ここで、これら 2 つの dataGridView または .csv ファイルを 2 つマージする必要があります。私はそれを解決するためにウェブ全体でさまざまな手法を試しましたが、何も機能しません。 たとえば、ワークブックとワークシートを使用して解決し、dataGridView メソッドも使用しましたが、何も機能しません。誰でも私を助けてくれませんか?!! それは本当に感謝です!! ちなみに、各列のヘッダーはヘッダー名の下に A、B、C のように書かれており、名前は最初の (1) 行の下にあります。CachedCsvReaderStreamReaderdataGridView1dataGridView2dataGridView3
Excel.Application

便宜上、これまでに行った小さな部分を以下に追加します。

using (CachedCsvReader csv1 = new CachedCsvReader(new StreamReader(textBox1.Text), true))
{
    dataGridView1.DataSource = csv1;
}

ダミス氏の提案の後、私はこれを行いました:

OleDbConnection conn1 = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + System.IO.Path.GetDirectoryName(textBox1.Text) +"; Extended Properties = \"Text;HDR=YES;FMT=Delimited\"");
         conn1.Open();
         OleDbDataAdapter adapter1 = new OleDbDataAdapter("SELECT * FROM " + System.IO.Path.GetFileName(textBox1.Text), conn1);
         DataSet ds1 = new DataSet("Temp"); 
         adapter1.Fill(ds1);
        // you can get datatable as bellow 
         DataTable tb1 = ds1.Tables[0];

         OleDbConnection conn2 = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + System.IO.Path.GetDirectoryName(textBox2.Text) + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\"");
         conn2.Open();
         OleDbDataAdapter adapter2 = new OleDbDataAdapter("SELECT * FROM " + System.IO.Path.GetFileName(textBox2.Text), conn2);
         DataSet ds2 = new DataSet("Temp");
         adapter2.Fill(ds2);
         // you can get datatable as bellow 
         DataTable tb2 = ds2.Tables[0];

        //Merge
         tb1.Merge(tb2);

        //View dataGridView 3
         dataGridView3.DataSource = tb1;
         dataGridView3.Update();

内容を確認したら、下のリンクをクリックして例のテキスト ファイルをダウンロードします。 ここをクリックして .txt ファイルをダウンロードします

これがお役に立てば幸いです。ありがとう!-サファン。

4

1 に答える 1

0

マッピングが難しい場合は、いつでも必要な列を作成して CSV ファイルを反復処理し、各セルを手動で追加できます。コーディングはそれほど必要ありません。

CSV1 をループして、適切なセルにデータを追加します。
CSV2 をループして、適切なセルにデータを追加します。

于 2012-05-29T16:41:44.860 に答える