Здравствуйте, brash, Вы писали:
B>Люди помогите, пытаюсь прочитать значения из EXCEL книги, если количество записей меньше 10000 то все работает нормально, но как только становится более 10000 сразу выдается ошибка
B>Выход за пределы диапазона. (Исключение из HRESULT: 0x8002000A (DISP_E_OVERFLOW))
B> в System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters)
B> в System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
B> в System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args)
B>вот код
B>object[,] values;
B>string start="1";
B>string end="10001";
B>Excel.Range rng = application.get_Range("1:" + start, "255:" + end);
B>values = (object[,])rng.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, rng, null);
Наверняка проблема с самим Excel, я думаю очень большое количество ячеек (шутка ли 255 * 10000 > 2.5 млн ячеек), наверное, банально не хватает памяти, а зачем, если не секрет такое огромный range? может можно вашу проблему по-другому решить? Когда такие огромные матрицы, обычно что-то не так с логикой. На крайний случай, обрабатывайте ячейки пачками, максимально-допустимое количество ячеек вы уже определили

, хотя на другом компьютере все может быть иначе .