从文本文件导入数据并在datagrid中显示

我想从文本文件导入数据并将其显示在数据网格中。 文本文件是分隔的。第一行包含列标题,其余包含各列的数据。

文本文件中存在列分隔符和行分隔符。我想在数据网格中显示数据,其中标题将是列名称,所有数据将显示在每列下。

我已成功从文件中获取数据。 问题是每次文件可能不同,列数可能会有所不同。 所以我can not use a predefined class 。我想create a class for run time and add the properties at run time并将列表显示到数据网格。 我该如何完成这项任务?

你为什么要创建这个类? 您也可以使用以下代码..它将动态生成DataTable

在这里查看..

 public class Helper { public static DataTable DataTableFromTextFile(string location, char delimiter = ',') { DataTable result; string[] LineArray = File.ReadAllLines(location); result = FormDataTable(LineArray, delimiter); return result; } private static DataTable FormDataTable(string[] LineArray, char delimiter) { DataTable dt = new DataTable(); AddColumnToTable(LineArray, delimiter, ref dt); AddRowToTable(LineArray, delimiter, ref dt); return dt; } private static void AddRowToTable(string[] valueCollection, char delimiter, ref DataTable dt) { for (int i = 1; i < valueCollection.Length; i++) { string[] values = valueCollection[i].Split(delimiter); DataRow dr = dt.NewRow(); for (int j = 0; j < values.Length; j++) { dr[j] = values[j]; } dt.Rows.Add(dr); } } private static void AddColumnToTable(string[] columnCollection, char delimiter, ref DataTable dt) { string[] columns = columnCollection[0].Split(delimiter); foreach (string columnName in columns) { DataColumn dc = new DataColumn(columnName, typeof(string)); dt.Columns.Add(dc); } } } 

现在要将此DataTable显示到您的网格视图,您只需要调用如下

 dataGridView1.DataSource = Helper.DataTableFromTextFile("Testing.txt"); 

对于像 - 的文本文件

 fname, sname, age deepak, sharma, 23 Gaurav, sharma, 32 Alok, Kumar, 33 

因为你没有指定它将使用的分隔符char ,否则你必须指定是否有任何其他类似的

 dataGridView1.DataSource = Helper.DataTableFromTextFile("Testing.txt", '|'); 

对于像 - 的文本文件

 fname| sname| age deepak| sharma| 23 Gaurav| sharma| 32 Alok| Kumar| 33 

它像魅力,

在此处输入图像描述

http://mytactics.blogspot.com/2014/11/show-delimiter-text-file-data-to.html