Raja Ganapathy Ответов: 2

Как проверить лист 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

Определение "не работает должным образом"

2 Ответов

Рейтинг:
2

Patrice T

Используйте отладчик, чтобы увидеть, что делает ваш код и что он "не работает должным образом".

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.