У меня есть код, и мне нужно проверить, является ли столбец пустым или содержит неправильные данные, с помощью try catch - PullRequest
0 голосов
/ 29 мая 2019

Я написал некоторый код и в нем foreach переносит все данные в столбцы Excel ... Но я хочу выяснить, содержит ли файл Excel какой-либо пустой столбец (CELL) или любой другой тип данных, который может привести к ошибке при сохранении его в базе данных

Когда в Excel есть пустая ячейка, цикл foreach пропускает этот столбец, и я не могу поставить условие для проверки там пустого значения

    using OfficeOpenXml;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Web;



    public static class ExcelPackageExtensions
    {
     public static DataTable ToDataTable(this ExcelPackage package)
     {
        ExcelWorksheet worksheet = package.Workbook.Worksheets.First();
        DataTable dt = new DataTable();
        foreach (var firstRowCell in worksheet.Cells[1, 1, 1, worksheet.Dimension.End.Column])
        {
            dt.Columns.Add(firstRowCell.Text);
        }

        for (var rowNumber = 2; rowNumber <= worksheet.Dimension.End.Row; rowNumber++)
        {
            var row = worksheet.Cells[rowNumber, 1, rowNumber, worksheet.Dimension.End.Column];
            var newRow = dt.NewRow();


                foreach (var cell in row)
                {
                    if (cell.Start.Column == 2)//when col2 has no data in excel foreach skips and i'm not able to check the null value 
                    {
                        if (cell.Text == null)
                        { goto End; }
                    }
                    if (cell.Start.Column == 3)
                    {
                        if (cell.Text == null)
                        { goto End; }
                    }
                    if (cell.Start.Column == 18)
                    {
                        string datefromtemp = Convert.ToString(cell.Text);
                        DateTime datefromtemp2 = Convert.ToDateTime(datefromtemp, System.Globalization.CultureInfo.InvariantCulture);
                        newRow[cell.Start.Column - 1] = datefromtemp2;
                    }
                    else if (cell.Start.Column == 19)
                    {
                        string datetotemp = Convert.ToString(cell.Text);
                        DateTime datetotemp2 = Convert.ToDateTime(datetotemp, System.Globalization.CultureInfo.InvariantCulture);
                        newRow[cell.Start.Column - 1] = datetotemp2;
                    }
                    else if (cell.Start.Column == 21)
                    {
                        string createddatetemp = Convert.ToString(cell.Text);
                        DateTime createddatetemp2 = Convert.ToDateTime(createddatetemp, System.Globalization.CultureInfo.InvariantCulture);
                        newRow[cell.Start.Column - 1] = createddatetemp2;
                    }
                    else if (cell.Start.Column == 23)
                    {
                        string modifieddatetemp = Convert.ToString(cell.Text);
                        DateTime modifieddatetemp2 = Convert.ToDateTime(modifieddatetemp, System.Globalization.CultureInfo.InvariantCulture);
                        newRow[cell.Start.Column - 1] = modifieddatetemp2;
                    }
                    else if (cell.Start.Column == 24)
                    {
                        int isactivetemp = Convert.ToInt32(cell.Text);
                        bool isactivetemp2 = Convert.ToBoolean(isactivetemp);
                        newRow[cell.Start.Column - 1] = isactivetemp2;
                    }
                    else
                    {
                        newRow[cell.Start.Column - 1] = cell.Text;
                    }
                }
        End:
            dt.Rows.Add(newRow);
        }
        return dt;
    }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...