Невозможно преобразовать System.DBNull в int

Я изо всех сил пытаюсь понять, что это за проблема, у меня есть таблица Excel, которая должна быть импортирована в мою базу данных SQL Server. Я повторяю это следующим образом:

Microsoft.Office.Interop.Excel.Range xlRange = xlWorksheet.Range["A1", "D6867"]; int num = 4; // String test = ""; foreach (Microsoft.Office.Interop.Excel.Range row in xlRange.Rows) { if ((int)xlWorksheet.Cells[num, 1].Font.Size == 14) { ProductCategory category = new ProductCategory(); category.Category = xlWorksheet.Cells[num, 1].Value.ToString(); db.ProductCategories.Add(category); } num++; //System.Diagnostics.Debug.WriteLine(test); } db.SaveChanges(); xlWorkbook.Close(true, Missing.Value, Missing.Value); xlApp.Quit(); 

Ошибка, которую я получаю

Невозможно преобразовать System.DBNull в int

на этой линии:

 if ((int)xlWorksheet.Cells[num, 1].Font.Size == 14) 

Я понятия не имею, что означает эта ошибка, и нет нулевых значений в ячейках, к которым я обращаюсь. Пожалуйста, порекомендуйте?

По крайней мере в одной из ваших ячеек размер шрифта – System.DBNull.

Вы должны проверить тип Размер перед его литьем:

 if(Convert.IsDBNull(xlWorksheet.Cells[num, 1].Font.Size)) { } else if((int)xlWorksheet.Cells[num, 1].Font.Size == 14) { // do Something.... } 
  • Как использовать условное форматирование Excels для группировки строк на основе значений ячеек?
  • Не удалось получить свойство Copy класса Worksheet
  • Метод set_value Excel Interop повреждает значения
  • C # установить источник диаграммы Excel
  • Как добавить объект в строку Excel с помощью C #
  • Excel Interop - скрытие категорий в диаграмме
  • c # .net interop beforesave не срабатывает
  • Управление диапазоном C # Excel
  • Удалить разблокированные строки / столбцы в unserinterfaceonly: = true
  • Добавление листа в книгу Excel
  • Заменить использование excel interop
  • Interesting Posts
    Давайте будем гением компьютера.