Ошибка при изменении версии .NET Framework

243
01 апреля 2018, 17:25

С#. На Win7 создал проект изначально под .NET Framework 4, используя библиотеки Microsoft.Office.Interop.Excel для работы с *.xls файлами. Все замечательно работало. На работе же оказался .NET Framework 3,5. В свойствах проекта целевой Framework выставил 3,5. После чего в процессе компиляции во второй приведенной строке

...
excelcells = excelworksheet.get_Range("A" + row.ToString(), Type.Missing);
int element = (Int32)excelcells.Value2; //тут
...

выдало исключение "System.InvalidCastException: 'Заданное приведение является недопустимым.' ". Непосредственно в ячейке екселя находится "1". Причина ошибки? Спасибо

Answer 1

Каст (cast) - приведение типов. В экселе общий тип считается строкой. Можно воспользоваться следующей функцией. Она сама поймет какой тип вы ей отдали, но упадет если это нельзя превратить в число или вернет 0, если значение будет null.

int element = Convert.ToInt32(excelcells.Value2);
READ ALSO
Управление checkBox в приложении через файл?

Управление checkBox в приложении через файл?

Например, файл синхронизируется через сервисы Dropbox, YandexDisk, и прочие

261
Переход перелистыванием страниц в WPF

Переход перелистыванием страниц в WPF

ЗдравствуйтеТакая задача - имеется главное окно содержащее Frame

313
Как прорваться через 401 Unauthorized ошибку?

Как прорваться через 401 Unauthorized ошибку?

Пытаюсь скачать кусок трансляции по адресу Live

309