Проверка каждой строки и столбца электронной таблицы Excel - PullRequest
0 голосов
/ 09 мая 2020

Я загружаю файл Excel с 5 столбцами и примерно 10 строками. Я хочу проверить каждую строку / столбец и убедиться, что есть данные. Столбцы не могут быть пустыми или пустыми. Я использую Epplus.

Если некоторые строки не проходят проверку, я хочу отслеживать строку / столбцы и отправлять это сообщение обратно клиенту. У меня только один лист. Я думаю, что было бы лучше иметь модель ошибок

Как я могу этого добиться и где будет этот код go?

        //check if there is actually a file being uploaded
        if (FileUpload1.HasFile)
        {
            //load the uploaded file into the memorystream
            using (MemoryStream stream = new MemoryStream(FileUpload1.FileBytes))
            using (ExcelPackage excelPackage = new ExcelPackage(stream))
            {
                //loop all worksheets
                foreach (ExcelWorksheet worksheet in excelPackage.Workbook.Worksheets)
                {
                    //loop all rows
                    for (int i = worksheet.Dimension.Start.Row; i <= worksheet.Dimension.End.Row; i++)
                    {
                        //loop all columns in a row
                        for (int j = worksheet.Dimension.Start.Column; j <= worksheet.Dimension.End.Column; j++)
                        {
                            //add the cell data to the List
                            if (worksheet.Cells[i, j].Value != null)
                            {
                                excelData.Add(worksheet.Cells[i, j].Value.ToString());
                            }
                        }
                    }
                }
            }
        }

1 Ответ

0 голосов
/ 09 мая 2020

Я предлагаю использовать простой List<string> для отслеживания ваших ошибок.

Что-то вроде:

List<string> errors = new List<string>();

Затем в вашей проверке:

if (String.IsNullOrEmpty(worksheet.Cells[i, j].Value))
    errors.Add($"Worksheet {worksheet.Name}, Row {i}, Column {j} does not contain data.");
...