exception from hresult 0x800a03ec

Я получаю «HRESULT: 0x800A03EC» ошибка при запуске Excel надстройки с помощью следующего кода:

Когда происходит ошибка X и Y установлены на 1, таким образом, диапазон Excel не нарушается. Я искал широко и пытался несколько способов установки значения ячейки (например, клеток [х, у], range.set_Value ()), но я в догадках, почему эта ошибка происходит и как этого избежать.

Любая помощь очень ценится.

Ниже приведены детали исключения:

Есть такая же ошибка в этой строке

Решаемые с индексом ненулевым на основе

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

Это общая, но плохо документированы Excel COM Error. Я видел, как это документально как «NAME_NOT_FOUND», что означает, что COM слой в Excel отключен, и не могу найти свойство COM или имя методы.

Я получаю эту ошибку последовательно при запуске COM-код в то время как Excel является «занят», например, если вы установите таймер, который начнет код, а код запускается, когда пользователь редактирует ячейку или придавливая их кнопкой мыши, а затем вы всегда будете получать эту ошибку. Эта ошибка происходит только тогда, когда код выполняется в главном потоке Excel, но, кажется, что эквивалентно ошибке VBA_E_IGNORE = 0x800AC472, который вы получите при вызове объектной модели Excel COM из другого потока, в то время как Excel является «занято».

Единственный способ решения проблемы, кажется, повторить (с некоторой небольшой задержкой) на COM вызов, пока не удается — когда Excel уже не «занят».

Проверьте начальные индексы. Его начало от 1 не 0 для объектов Microsoft.Office.Interop.Excel диапазона. Я получил ту же ошибку, из-за моей петли начального значения.

Получил эту ошибку тоже .

это происходит при сохранении в путь_к_файлу содержит недопустимые символы, в моем случае:

Обратите внимание на существование как и /

* Также может возникнуть, если при попытке сохранить каталог, который уже не существует.

Выберите Параметры Excel> Сохранить> Сохранить файлы в этом формате> Выберите «Книга Excel (*. XLSX)». Эта проблема возникает, если вы используете более старую версию файла Excel (.xls) вместо формата XLSX. Старая версия не позволяет более 65k строк в листе Excel.

После того, как вы сохранили, как .xslx, попробуйте запустить свой код.

Глядя больше в вашу проблему, кажется, что эта проблема может быть локаль специфичны. Имеет ли код работать на другой машине? Какое значение имеет ячейка имеет? Является ли это формат даты и времени? Посмотрите здесь:

Я получаю сообщение «HRESULT: 0x800A03EC» при запуске надстройки Excel со следующим кодом:

При возникновении ошибки X и Y установлены в 1, поэтому диапазон Excel не нарушается. Я много раз искал и пробовал несколько способов установить значение ячейки (например, Cells [x, y], range.set_Value()), но я потерял причину этой ошибки и как ее избежать.

Любая помощь очень ценится.

Ниже приведены сведения об исключении:

c# exception excel interop add-in

11 ответов

90 Решение d1jhoni1b [2013-01-16 20:54:00]

Получена такая же ошибка в этой строке

Решено с ненулевым индексом

Как возможно, что ребята, которые создали эту библиотеку, подумали, что было бы неплохо использовать индексирование без нуля?

14 Govert [2012-10-15 13:29:00]

Это распространенная, но плохо документированная ошибка Excel COM. Я видел, что он задокументирован как «NAME_NOT_FOUND», что означает, что слой COM Excel отключен и не может найти имя или имя COM-метода.

Я получаю эту ошибку последовательно при запуске COM-кода, когда Excel «занят» , например, если вы установите таймер, который запустит код, и код начнет работать, пока пользователь редактирует ячейку или нажимает на нее, то вы всегда получите эту ошибку. Эта ошибка возникает только тогда, когда код работает в основном потоке Excel, но, по-видимому, является эквивалентом ошибки VBA_E_IGNORE = 0x800AC472, которую вы получаете при вызове объектной модели Excel COM из другого потока, в то время как Excel «занят» .

Единственным обходным решением является попытка повторить (с небольшой задержкой) COM-вызов до тех пор, пока он не удастся — когда Excel больше не «занят» .

Проверьте начальные индексы. Его начало начинается с 1 не 0 для объектов Microsoft.Office.Interop.Excel. Я получил такую ​​же ошибку из-за значения начала цикла.

Получил эту ошибку также.

это происходит, когда save to filepath содержит недопустимые символы, в моем случае:

Обратите внимание на существование как , так и /

* Также может возникнуть при попытке сохранить в каталог, который еще не существует.

Перейдите в Параметры Excel > Сохранить > Сохранить файлы в этом формате > Выберите «Книга Excel (*. xlsx)». Эта проблема возникает, если вы используете более старую версию excel файла (.xls) вместо .xlsx. Более старая версия не содержит более 65 тыс. Строк в листе excel.

Как только вы сохранили как .xslx, попробуйте выполнить свой код еще раз.

Более подробно о вашей проблеме, похоже, проблема может быть специфичной для локали. Работает ли код на другой машине? Какое значение имеет ячейка? Это формат даты и времени? Посмотрите здесь:

2 ronguest [2015-04-27 12:47:00]

У нас была та же проблема и нашлось для нас решение:

Пожалуйста, сделайте эту папку. C:WindowsSysWOW64ConfigsystemprofileDesktop · Windows 2008 Server x86
Пожалуйста, сделайте эту папку. C:WindowsSystem32ConfigsystemprofileDesktop

Получена та же ошибка при попытке экспортировать большой файл Excel (

150 000 строк) Исправлено с помощью следующего кода

Я получил ту же ошибку при использовании DLL файлов Excel 2003 и попытался написать в 257-й столбец. Excel 2003 ограничивает максимальный столбец на рабочий лист до 256, тем самым поднимая это исключение.

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

Я экспортировал из базы данных в Excel лист о моих клиентах. Кто-то заполняет имя клиента как =90Erickson-King и, по-видимому, это нормально в виде строкового типа в базе данных, однако это приведет к ошибке в виде формулы в Excel. Вместо того, чтобы показывать #N/A как при использовании Excel, программа просто замерла и пропустила ошибку 0x800A03EC некоторое время спустя.

Я исправил это, удалив знак равенства и тире в имени клиента. После этого экспорт прошел хорошо.

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

1 CMB [2018-07-05 17:38:00]

Я вижу, что это старый пост, но я столкнулся с ним при попытке устранить ту же ошибку и хотел поделиться своим решением. Как оказалось, при попытке экспортировать в excel в начале комментария в ячейке был «=». Пример «= застрял», когда комментарий должен был просто сказать «застрял». Наверное, прецедент думал, что это формула.

0 Utsav Jha [2018-04-10 09:53:00]

Некоторое время назад я получал ту же ошибку. Проблема заключалась в том, что мой файл XLS содержал более 65531 записей (точнее, 500 тысяч). Я пытался прочитать ряд ячеек.

Исключение было выбрано при попытке прочитать диапазон ячеек, когда мой счетчик, т.е. «i», превысил этот предел в 65531 записи.

Выдается следующее исключение, если я пытаюсь открыть файл Excel на клиентском компьютере:

Внутренние исключения: (пусто)

Это HResult — очень общая ошибка, я не могу найти какую-либо полезную информацию по ней.

Служба WCF, запущенная внутри Службы Windows. Точно такая же программа установки работает на трех других машинах.

Вещи, которые я могу исключить:

  • Неправильный путь
  • Файл не существует
  • Файл поврежден
  • Файл защищен от записи

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий