验证datagridview中列下的行?

时间:2018-01-29 02:30:22

标签: c# excel datagridview

美好的一天。

我正在制作一个程序来导入可以验证列下行的excel文件。

对于KPI COLUMN,(image here.)我必须验证其下的所有行。 唯一有效的KPI项目是:

收入

销售量

总收入

品牌会议

如果KPI项有效,则会打开一个文本文件 并指出它是否有效。

对于示例

收入 - 有效 // ,因为它已存在且有效。

Gross Con - 有效// 同样高于。

SAMPLE - NOT 有效,因为它不包含在有效的KPI名称中。

我如何以编程方式执行此操作,因为我不知道如何选择KPI项目下的行?

以下是我的示例代码:

 public void Validate_KPI(DataGridView dataGridView)
    {
        FileStream fs = new FileStream(@"C:\brandon\InvalidKPI.txt", FileMode.OpenOrCreate, FileAccess.Write);
        StreamWriter sw = new StreamWriter(fs);

        sw.BaseStream.Seek(0, SeekOrigin.End);
        StringBuilder sb = new StringBuilder();

        decimal num;
        if (dataGridView.ColumnCount > 2)
        {
            for (int h = 2; h < dataGridView.ColumnCount; h++)
            {
               for (int i = 0; i <dataGridView.RowCount; i++)
               {
                  if (!Decimal.TryParse(dataGridView[h, i].Value.ToString(), out num))
                  {
                      if (dataGridView[h, i].Value.ToString() == "Revenue" || dataGridView[h, i].Value.ToString() == "Sales Volume" || dataGridView[h, i].Value.ToString() == "Gross Con" || dataGridView[h, i].Value.ToString() == "Brand Con")
                      {
                          sb.AppendLine(dataGridView[h, i].Value.ToString() + " is Valid");
                      }
                      else
                      {
                          //MessageBox.Show("Row not decimal:" + " [ " + dataGridView[h, i].Value.ToString() + "] in column "  + dataGridView.Columns[h].Name);
                          sb.AppendLine(dataGridView[h, i].Value.ToString() + " is not valid.");
                      }
                  }
               }
            }
        }

        sw.WriteLine(sb.ToString());
        MessageBox.Show(sb.ToString());
        Process.Start(@"C:\brandon\InvalidKPI.txt");

        sw.Flush();
        sw.Close();

    }

以下是results.

我只想 LIMIT 仅在KPI COLUMN下的行选择而不是其他列。

1 个答案:

答案 0 :(得分:0)

没关系,我做到了。

 public void Validate_KPI(DataGridView dataGridView)
    {
        FileStream fs = new FileStream(@"C:\brandon\InvalidKPI.txt", FileMode.OpenOrCreate, FileAccess.Write);
        StreamWriter sw = new StreamWriter(fs);

        sw.BaseStream.Seek(0, SeekOrigin.End);
        StringBuilder sb = new StringBuilder();

        decimal num;
        if (dataGridView.ColumnCount > 2)
        {
            int h = 2;
                for (int i = 0; i < dataGridView.RowCount; i++)
                {
                    if (!Decimal.TryParse(dataGridView[h, i].Value.ToString(), out num))
                    {
                        if (dataGridView[h, i].Value.ToString() == "Revenue" || dataGridView[h, i].Value.ToString() == "Sales Volume" || dataGridView[h, i].Value.ToString() == "Gross Con" || dataGridView[h, i].Value.ToString() == "Brand Con")
                        {
                            sb.AppendLine(dataGridView[h, i].Value.ToString() + " is Valid");
                        }
                        else
                        {
                            //MessageBox.Show("Row not decimal:" + " [ " + dataGridView[h, i].Value.ToString() + "] in column "  + dataGridView.Columns[h].Name);
                            sb.AppendLine(dataGridView[h, i].Value.ToString() + " is not valid.");
                        }
                    }
                }
        }

        sw.WriteLine(sb.ToString());
        MessageBox.Show(sb.ToString());
        Process.Start(@"C:\brandon\InvalidKPI.txt");

        sw.Flush();
        sw.Close();

    }