`Открываю Excel 5.0/95,сохраняю как Excel 2003 т.е. меняю формат с помощью C# interop в папке с помощью цикла. При открытии файла Excel 2007 генерирует "Exception from HRESULT(0x800A03EC)" и программа зависает после этой строки:
excelappworkbook = excelapp.Workbooks.Open(excelfilepath[i], TMis, TMis, TMis, TMis, TMis, TMis, TMis, TMis, TMis, TMis, TMis, TMis, TMis, TMis);
Обработчик catch { мой обработчик исключения } не выполняется пока пользователь не закроет окно сгенерированное Excel 2007
Вот это окно:
Как закрыть файл Excel с ошибкой до того как Excel покажет это окно и перейти к выполнению блока catch{ мой обработчик исключения }
Кстати если ввести в окне 3 буквы любые русские то КОНФЛИКТ ИМЁН исчезает! НО ПРОГА ДЛЯ ТОГО И НУЖНА,ЧТОБЫ ПОЛЬЗОВАТЕЛЬ ЭТОГО НЕ ДЕЛАЛ!!!
Простите ЗАБЫЛ ДОБАВИТЬ: Такая проблема только когда установлен Excel 2007, а если установлен Excel 2003 этого не наблюдалось ни разу на многих компах и где XP и где Win7. Остановка программы не на всех файлах, только некоторых по выбору Excel!!!
excelapp.DisplayAlerts = false; пробовали?
Конечно пробовал.".DisplayAlerts" не отключает сообщения HRESULT к сожалению! ЕСЛИ БЫ ВСЁ БЫЛО ТАК ПРОСТО!!! И в Гугл и в Яндекс нашёл только это: есть COM-исключения,а есть NET-исключения. Прога останавливается на строке excelapp.Workbooks.Open() КАК ОСТАНОВИТЬ ПРОЦЕСС ОТКРЫТИЯ ФАЙЛА, ЕСЛИ Excel СГЕНЕРИРУЕТ ИСКЛЮЧЕНИЕ? Я думаю Студия на дальнейший процесс Excel не реагирует. Где выход из положения!? Ещё нашёл это https://www.forum.mista.ru/topic.php?id=711878 (но там не C# а 1С "Проблему решил, используя конструкцию ПолучитьComСоединение()"), Где подобное в С# и Студии?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости