Excel 2007 из C # get_Value всегда возвращает -2146826265 - PullRequest
3 голосов
/ 12 ноября 2010

У меня есть небольшое приложение на C #, которое ссылается на библиотеку объектов Microsoft Excel 12.0. Помимо прочего, он читает значение из ячейки Excel. Он считывает это значение из некоторых старых файлов Excel (.xls) и некоторых файлов 2007 (.xlsx). Значение возвращается правильно для всех файлов .xls, но я получаю только следующее значение для файлов .xlsx: -2146826265.

Ячейка, которую я читаю, содержит простую формулу: "= A1 + B1".

Это строка кода, которую я использую

((Excel.Range)ws.Cells.get_Item(29, 17)).get_Value(null));

Где ws - текущий активный лист.

Спасибо за любую помощь, которую вы можете предложить.

1 Ответ

9 голосов
/ 22 июня 2011

Функция get_value возвращает целое число для его сообщения об ошибке. Вот список:

-2146826281 = #Div/0!
-2146826246 - #N/A
-2146826259 = #Name?
-2146826288 = #Null!
-2146826252 = #Num!
-2146826265 = #Ref!     <- yours !
-2146826273 = #Value!

А вот очень хорошая статья:

http://xldennis.wordpress.com/2006/11/22/dealing-with-cverr-values-in-net-%E2%80%93-part-i-the-problem/

Из этого очень хорошего ответа:

Как узнать, есть ли в ячейке ошибка в формуле в C #

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