美好的一天。
我正在制作一个程序来导入可以验证列下行的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下的行选择而不是其他列。
答案 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();
}