Excel 12 Interop HRESULT 0x800A03EC - PullRequest
       21

Excel 12 Interop HRESULT 0x800A03EC

0 голосов
/ 12 декабря 2011

Я пишу программу на C #, используя Excel 12 Interop, и моя программа выдает исключение HRESULT 0x800A03EC, когда я запускаю ее на компьютере с Windows XP с установленным Microsoft Office 2003.

Моя машина для разработки имеет Windows 7 64bit и Microsoft Office 2007, программа работает нормально.

Мой код SaveAs таков:

      wbk.SaveAs(path, Excel.XlFileFormat.xlExcel8, 
                   Type.Missing, 
                   Type.Missing,
                   Type.Missing,
                   Type.Missing,
                   Excel.XlSaveAsAccessMode.xlExclusive,
                   Type.Missing, 
                   Type.Missing, 
                   Type.Missing, 
                   Type.Missing, 
                   Type.Missing);

Есть ли какие-нибудь обходные пути, которые я могу использовать, чтобы мне не приходилось устанавливать Office 2007 на компьютер под управлением Windows XP?

UPDATE

Я установил сборки взаимодействия для Office 2007 и Office 2010 на компьютере под управлением Windows XP, который также является 64-разрядным, и я все еще получаю ту же ошибку. Это может быть проблема с правами сборки?

1 Ответ

0 голосов
/ 12 декабря 2011
  1. Вероятно, вы можете просто перекомпилировать, используя взаимодействие с Office 2003, хотя это .NET 1.1 и (я думаю) доступно только через установщик Office 2003 - ищите «.NET Automation Support» или подобное в каждом приложении. Я видел проблемы с использованием кода, созданного для .NET 1.1 в версии 2+, хотя, в частности, конструкторы терпят неудачу, но полностью повторяются, поэтому, если он работает, проблем нет.

  2. Вы можете напрямую использовать COM-объект Excel. Результат должен работать для Excel 7 и более поздних версий. Сигнатуры функций в целом одинаковы, хотя теперь вам нужно преобразовать все перечисления в целые числа для передачи в функции.

  3. Если вы просто используете Excel для создания простой электронной таблицы (или относительно простой), вы можете вообще пропустить Excel и использовать одну из этих библиотек для генерации электронной таблицы.

...