0

xlsファイルがあります。以下のデータがあります。

ここに画像の説明を入力

ここで、データテーブル dt1 に挿入された値を取得したいと考えています。単純な c# を使用した簡単な手順が必要です。API/DLL はありません。私が試したことは以下のとおりです。

string strfilename = "";
        DataTable dt = new DataTable();

        if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
        {
            strfilename = openFileDialog1.InitialDirectory + openFileDialog1.FileName;
        }

        string[] csvRows = System.IO.File.ReadAllLines(strfilename); ;

        string[] fields = null;
        foreach (string csvRow in csvRows)
        {
            fields = csvRow.Split(',');
            DataRow row = dt.NewRow();
            row.ItemArray = fields;
            dt.Rows.Add(row);
        }

ここで私のcsvRowは7行を見つけるはずです。しかし、131行になります。そして、それらは私には読めません。ある種の象徴。

4

2 に答える 2

1

DataTable を作成しましたが、その中に列を定義していません (AKA スキーマ)。
CSV ファイルに存在する多くのフィールド (カンマ区切り) と少なくとも同じ量の列が必要です。

読み取りループに入る前にこれを追加します

 string[] csvRows = System.IO.File.ReadAllLines(strfilename); 
 for(int x = 0; i < csvRows.Length; x++)
     dt.Columns.Add("Col" + x.ToString());

これで、ItemArray の csv の「列」の数が同じになりました。

于 2012-12-01T09:57:01.750 に答える
0

この例を見てください。 http://www.codeproject.com/Tips/429712/Convert-CSV-File-to-data-table

于 2012-12-01T09:59:39.360 に答える