2013-10-25 28 views
2

任何人都可以帮助我..?如何使用C#读取/加载datagridview中的文本(* .txt)文件值?

在这里,我需要在我的datagridview中读取/加载文本(* .txt)文件的值。这是我需要加载的示例文本文件。

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 

谁能目前如何将这些文本文件中值加载到我的datagridview的单元格,这些标题像数据1,数据2,... DATA10必须加载在列标题,其余行值应在单独的细胞加载datagridview根据它们的列标题。

在此先感谢。

+2

请检查http://www.csharp-station.com/HowTo/ReadWriteTextFile.aspx – Rohit

+0

您好,欢迎来到SO!请阅读[FAQ](http://stackoverflow.com/help/how-to-ask)了解如何提出一个好问题。与此同时,您可以向我们提供一些代码,显示您迄今为止所尝试的内容。 – wonko79

+0

你应该展示你所做的努力..... – vikky

回答

2

一种方式来做到这一点是:

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); 
    } 
} 

当然,这适用于您提供的样本输入文件。对该格式的任何变化都需要进一步验证并增加代码的复杂性。

3

试试这个..

 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; 

不要气馁,但这不是问一个问题在这里对SO的正确方法。请先让你自己熟悉。

1
 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); 
+1

虽然这段代码可能回答这个问题,但提供关于如何解决问题和/或为什么解决问题的额外上下文会提高答案的长期价值。 –