查找CSV文件中定义的指定单元格地址的值

时间:2017-11-20 08:33:39

标签: c# excel csv datagridview datatable

private void button1_Click(object sender, EventArgs e)
        {
            DataTable dataTable = new DataTable();
            dataTable.Columns.Add("A");
            dataTable.Columns.Add("B");
            dataTable.Columns.Add("C");
            dataTable.Columns.Add("D");
            dataTable.Columns.Add("E");
            dataTable.Columns.Add("F");
            dataTable.Columns.Add("H");
            dataTable.Columns.Add("I");
            dataTable.Columns.Add("J");
            string filePath = @"data.csv";
            StreamReader streamReader = new StreamReader(filePath);
            string[] totalData = new string[File.ReadAllLines(filePath).Length];
            totalData = streamReader.ReadLine().Split(',');
            while (!streamReader.EndOfStream)
            {
                totalData = streamReader.ReadLine().Split(',');
                dataTable.Rows.Add(totalData[0], totalData[1], totalData[2], totalData[3], totalData[4]
                    , totalData[5], totalData[6], totalData[7], totalData[8]);
            }

            DataView dv = new DataView(dataTable);
            dataGridView1.DataSource = dv;

        }

    }

我已经建立了一个文本框,以便用户写入输入,例如" A3"我有另一个标签,可以产生输入的结果为" 405"我的意思是像Excel程序..我如何用我定义的数据表做到这一点? 1

1 个答案:

答案 0 :(得分:0)

我可以给一个算法来完成它。

  1. 将您的一致输入拆分为数字,即Alphabet + numeric
  2. 将第一个值作为列名称,第二个值作为行索引,这样您就可以获得如下值:
  3.   

    string fieldName = "A"; int fieldRow = 3; int myval = 0;

        for (int i = 0; i < Table.Rows.Count-1; i++) //Looping through rows
        {
             if (fieldRow == i) 
             {
                    myval = Table.Rows[i]["fieldName"]; //Getting my field value
                    break;
              }
    
        }