将xls转换为DataTable

时间:2012-12-01 09:52:00

标签: c# datatable

我有一个xls 文件。其中有以下数据。

enter image description here

现在我想将值插入到数据表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行。它们对我来说是不可读的。某种象征性的。

2 个答案:

答案 0 :(得分: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具有相同数量的“列”。

答案 1 :(得分:0)