如何将文本文件读取到DataTable

Had*_*nji 1 c# datatable

我想从txt文件中提取数据并将其放入DataTable中.txt文件中的内容采用以下格式:

sometext1:sometext2:sometext3
sometext4:sometext5:sometext6
sometext7:sometext8:sometext9
...

每行代表一行,每列用":"字符分隔.

我试过这样做:

            DataTable tbl = new DataTable();

            using (StreamWriter sw = File.CreateText(path))
            {
                string[] rows = content.Split('\n');
                foreach (string s in rows)
                {
                    string[] columns = s.Split(':');
                    foreach (string t in columns)
                    {
                        sw.WriteLine(t);
                    }

                }
            }
Run Code Online (Sandbox Code Playgroud)

如何读取此文件并将其添加到DataTable?

Kaf*_*Kaf 14

这是一种简单的方法来完成你的工作

public DataTable ConvertToDataTable (string filePath, int numberOfColumns)
{
    DataTable tbl = new DataTable();

    for(int col =0; col < numberOfColumns; col++)
        tbl.Columns.Add(new DataColumn("Column" + (col+1).ToString()));


    string[] lines = System.IO.File.ReadAllLines(filePath);

    foreach(string line in lines)
    {
        var cols = line.Split(':');

        DataRow dr = tbl.NewRow();
        for(int cIndex=0; cIndex < 3; cIndex++)
        {
           dr[cIndex] = cols[cIndex];
        }

        tbl.Rows.Add(dr);
    }

    return tbl;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果文本文件超过 3 列,则“for(int cIndex=0; cIndex &lt; 3; cIndex++)”行需要更改为“for(int cIndex=0; cIndex &lt; numberOfColumns; cIndex++)”,否则为第 4 列, 5等永远为空 (2认同)