简体   繁体   English

如何使用C#读取/加载datagridview中的文本(* .txt)文件值?

[英]How to read /load text (*.txt) file values in datagridview using C# ..?

can anyone help me..? 谁能帮我..?

Here, i need to read/load text (*.txt) file values in my datagridview. 在这里,我需要在datagridview中读取/加载文本(* .txt)文件值。 this is that sample text file, which i need to load. 这是我需要加载的示例文本文件。

 S.NO   Data1  Data2    Data3   Data4   Data5  Data6   Data7   Data8   Data9   Data10

 1      8.3     2       9.1     3       7.5     1       25      1.5     22      1.7 
 2      5.6     4       8.2     6       8.6     3       26      2.5     23      2.3 
 3      8.7     6       7.3     9       9.3     5       28      3.5     26      3.7 
 4      2.9     8       6.4     12      4.9     7       12      4.5     24      4.3 
 5      4.6    10       5.5     15      5.7     9       25      5.5     25      5.3

can anyone present how to load these text file values to my datagridview cells, those heading like data1,data2,.....data10 must load in column header and remaining row values should load in seperate cells of datagridview according to their column header. 任何人都可以介绍如何将这些文本文件值加载到我的datagridview单元格,那些标题如data1,data2,..... data10必须加载到列标题中,剩​​余的行值应根据列标题加载到datagridview的单独单元格中。

Thanks in advance. 提前致谢。

Try this.. 尝试这个..

System.IO.StreamReader file = new System.IO.StreamReader("yourfile.txt");
string[] columnnames = file.ReadLine().Split(' ');
DataTable dt = new DataTable();
foreach (string c in columnnames)
{
    dt.Columns.Add(c);
}
string newline;
while ((newline = file.ReadLine()) != null)
{
    DataRow dr = dt.NewRow();
    string[] values = newline.Split(' ');
    for (int i = 0; i < values.Length; i++)
    {
        dr[i] = values[i];
    }
    dt.Rows.Add(dr);
}
file.Close();
dataGridView1.DataSource = dt;

And don't be discouraged, but this is not the proper way to ask a question out here on SO. 不要气馁,但这不是在SO上提出问题的正确方法。 Please get yourself familiar first. 请先熟悉自己。

One way to do it is: 一种方法是:

var lines = File.ReadAllLines("input.txt");
if (lines.Count() > 0)
{
    foreach (var columnName in lines.FirstOrDefault()
        .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))
    {
        dataGridView1.Columns.Add(columnName, columnName);
    }
    foreach (var cellValues in lines.Skip(1))
    {
        var cellArray = cellValues
            .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
        if (cellArray.Length == dataGridView1.Columns.Count)
            dataGridView1.Rows.Add(cellArray);
    }
}

Of course, this works for the sample input file that you provided. 当然,这适用于您提供的示例输入文件。 Any variation to that format would require further validation and an increase in code complexity. 对该格式的任何变化都需要进一步验证并增加代码复杂性。

        this.Size = new Size(750, 450);
        data.Size = new Size(700, 200);
        data.Location = new Point(5, 40);

        string[] raw_text = System.IO.File.ReadAllLines("Etudiant.txt");
        string[] data_col = null;

        int x = 0;

        foreach (string text_line in raw_text) {
            //MessageBox.Show(text_line);
            data_col = text_line.Split('|');

            if (x == 0){
                //header
                for (int i=0; i <= data_col.Length - 1; i++) {
                    table.Columns.Add(data_col[i]);
                }
                x++;
            }
            else {
                //data
                table.Rows.Add(data_col);
            }
        }

        data.DataSource = table;
        this.Controls.Add(data);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM