Как проверить лист excel с помощью ASP.NET с#?
я загружаю один документ excel с несколькими листами и сохраняю его в наборе данных в виде таблицы данных.теперь я хочу проверить набор данных.
если "пункт нет" является обязательным, то номер элемента должен быть обязательным для всех листов в листе excel.
если номер товара в 7-й строке на всех листах, но значение столбца разное. как проверить правильность,
*Все обязательные поля строки одинаковы на всех листах, но столбец-это разница, как его проверить.
Что я уже пробовал:
public Boolean validate(DataSet ds) { int mn = 0; int count = 0; DataTable dt = new DataTable(); dt.Columns.Add("Error Log"); string msg = "Please Check Uploaded Excel File"; int tagcountvalue = 0; int Columncountvalue = 0; for (int s = 0; s < ds.Tables.Count; s++) { for (int z = 0; z < ds.Tables[s].Columns.Count; z++) { if (ds.Tables[s].Rows[7][z].ToString().ToUpper().Trim() == "item no")//Item number based count taken { tagcountvalue = z - 1; Columncountvalue = z; z = ds.Tables[0].Columns.Count; } } for (int z = 0; z < ds.Tables[s].Columns.Count; z++) { if (ds.Tables[s].Rows[10][z].ToString().ToUpper().Trim() == "ITEM NUMBER" || count != 0)//Item number based count taken { count = count + 1; } } for (int i = 2; i < tagcountvalue; i++) { if (ds.Tables[0].Rows[2][i].ToString() != "" && ds.Tables[0].Rows[10][i].ToString() == "") { dt.Rows.Add(); dt.Rows[mn][0] = "Tag Number Should be mandatory"; mn = mn + 1; } if (ds.Tables[0].Rows[1][i].ToString() == "" && ds.Tables[0].Rows[7][i].ToString() != "") { dt.Rows.Add(); dt.Rows[mn][0] = "Tag Description Should be mandatory against Tag Number"; mn = mn + 1; } int tagpart = 0; for (int j = 21; j < ds.Tables[0].Rows.Count; j++) { if (ds.Tables[0].Rows[j][i].ToString() != "" && ds.Tables[0].Rows[7][i].ToString() != "") { tagpart = tagpart + 1; } if (ds.Tables[0].Rows[j][i].ToString() == "" && ds.Tables[0].Rows[7][i].ToString() == "") { tagpart = tagpart + 1; } } if (tagpart == 0) { dt.Rows.Add(); dt.Rows[mn][0] = "Parts per unit Should be mandatory against Tag Number"; mn = mn + 1; } for (int j = 12; j < ds.Tables[0].Rows.Count; j++) { if (ds.Tables[0].Rows[j][i].ToString() != "" && ds.Tables[0].Rows[j][Columncountvalue + 2].ToString() == "") { dt.Rows.Add(); dt.Rows[mn][0] = "Installed Qty Should be mandatory"; mn = mn + 1; } if (ds.Tables[0].Rows[j][i].ToString() != "" && (ds.Tables[0].Rows[j][Columncountvalue + 9].ToString() == "" && ds.Tables[0].Rows[j][Columncountvalue + 10].ToString() == "")) { dt.Rows.Add(); dt.Rows[mn][0] = "Supplier/Manufacturer PartNumber Should be mandatory"; mn = mn + 1; } if (ds.Tables[0].Rows[j][i].ToString() != "" && ds.Tables[0].Rows[j][Columncountvalue + 23].ToString() == "") { dt.Rows.Add(); dt.Rows[mn][0] = "Lead time Should be mandatory"; mn = mn + 1; } if (ds.Tables[0].Rows[j][i].ToString() != "" && ds.Tables[0].Rows[j][Columncountvalue + 22].ToString() == "") { dt.Rows.Add(); dt.Rows[mn][0] = "Unit Price Should be mandatory"; mn = mn + 1; } if (ds.Tables[0].Rows[j][i].ToString() != "" && ds.Tables[0].Rows[j][Columncountvalue + 20].ToString() != "") { string units = ds.Tables[0].Rows[j][Columncountvalue + 20].ToString(); string[] arrayString = units.Split(' '); int counts = arrayString.Count(); if (counts == 1) { dt.Rows.Add(); dt.Rows[mn][0] = "Currency Should be provided with Unit Price"; mn = mn + 1; } } if (ds.Tables[0].Rows[j][i].ToString() != "" && (ds.Tables[0].Rows[j][Columncountvalue + 13].ToString() == "" && ds.Tables[0].Rows[j][Columncountvalue + 14].ToString() == "" && ds.Tables[0].Rows[j][Columncountvalue + 16].ToString() == "" && ds.Tables[0].Rows[j][Columncountvalue + 17].ToString() == "")) { dt.Rows.Add(); dt.Rows[mn][0] = "Supplier/Manufacturer Recommended Qty Should be mandatory"; mn = mn + 1; } if (ds.Tables[0].Rows[j][i].ToString() != "" && ds.Tables[0].Rows[j][Columncountvalue].ToString() == "") { dt.Rows.Add(); dt.Rows[mn][0] = "Item Number Should be mandatory"; mn = mn + 1; } if (ds.Tables[0].Rows[j][i].ToString() != "" && ds.Tables[0].Rows[j][Columncountvalue + 4].ToString() == "") { dt.Rows.Add(); dt.Rows[mn][0] = "Item Description Should be mandatory"; mn = mn + 1; } if (ds.Tables[0].Rows[j][i].ToString() != "" && ds.Tables[0].Rows[j][Columncountvalue + 12].ToString() == "") { dt.Rows.Add(); dt.Rows[mn][0] = "Manufacturer Name Should be mandatory"; mn = mn + 1; } int tagpart1 = 0; for (int k = 21; k < ds.Tables[0].Rows.Count; k++) { if ((ds.Tables[0].Rows[j][Columncountvalue].ToString() == ds.Tables[0].Rows[k][Columncountvalue].ToString()) && ds.Tables[0].Rows[k][Columncountvalue].ToString() != "" && ds.Tables[0].Rows[k][Columncountvalue].ToString() != "0") { tagpart1 = tagpart1 + 1; } } if (tagpart1 > 1) { dt.Rows.Add(); dt.Rows[mn][0] = "Item Number Should be Unique"; mn = mn + 1; } } if (ds.Tables[0].Rows[7][Columncountvalue + 12].ToString() == "") { dt.Rows.Add(); dt.Rows[mn][0] = "Equipment Description Should be mandatory"; mn = mn + 1; } if (ds.Tables[0].Rows[1][Columncountvalue + 14].ToString() == "") { dt.Rows.Add(); dt.Rows[mn][0] = "Revision No Should be mandatory"; mn = mn + 1; } if (ds.Tables[0].Rows[10][Columncountvalue + 16].ToString() == "") { dt.Rows.Add(); dt.Rows[mn][0] = "Supplier Name Should be mandatory"; mn = mn + 1; } } } if (dt.Rows.Count > 0) { dt = dt.DefaultView.ToTable(true);//Table value unique purpose provided grview.Visible = true; grerror.DataSource = dt; grerror.DataBind(); lnkDownload.Visible = true; ExportDataTabletoFile(dt, " ", true); return false; } else { grview.Visible = false; lnkDownload.Visible = false; return true; } }
Я использовал этот код, но не работал должным образом.
Patrice T
Определение "не работает должным образом"