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 Schema)。
您需要至少与 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 回答