在DataGrid中导入文本文件中的选定列视图C#

时间:2017-10-18 08:56:17

标签: c# text import datagrid

对不起我的英语语法,我是C#编程的新手。我想在vb c#中创建一个将txt文件导入datagrid的程序,但我只想获取所选列。请在图像上查看我的示例文本文件内容。

enter image description here 我只想获得专栏WP LAT DIST BRG其余的不是。 第一和第二行是日期" 18-OCT-2017"并命名" PILOT-ODESSA"并且不包括TOTAL的最后一行。

非常感谢您提前寻求帮助。

1 个答案:

答案 0 :(得分:0)

以下仅供参考。您需要根据需要了解并使用它:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string filePath = "sample.txt";

            using (var fileRdr = new StreamReader(filePath))
            {
                var columns = fileRdr.ReadLine().Split(",".ToArray(), StringSplitOptions.RemoveEmptyEntries); 

                CreateColumns(columns);

                while (!fileRdr.EndOfStream)
                {
                    var lineData = fileRdr.ReadLine().Split(",".ToArray(), StringSplitOptions.RemoveEmptyEntries);
                    dataGridView1.Rows.Add(lineData[0], lineData[1]);
                }

                fileRdr.Close();
                fileRdr.Dispose();
            }

        }

        private void CreateColumns(string[] columns)
        {
            foreach (var col in columns)
            {
                var dataColumn = new DataGridViewTextBoxColumn();
                dataColumn.Name = col;
                dataColumn.HeaderText = col.ToUpper();

                switch(col.ToUpper())
                {
                    case "WP":
                    case "LAT":
                        {
                            dataColumn.Visible = true;
                        }
                        break;
                    default:
                        {
                            dataColumn.Visible = false;
                        }
                        break;
                }

                dataGridView1.Columns.Add(dataColumn);
            }
        }       
    }

输出:

Winforms App

输入文件:(请注意,不是空格分隔 - 我将其更改为CSV)

WP,LAT,LON,DIST,SPD,MISC
1,10.5,25.3,10,15,AXX
2,11.9,24.1,50,25,BXX
3,20.2,20.9,70,35,CXX