2011-12-12 3 views
0

J'écris un programme en C# en utilisant l'Interop 12 Excel et mon programme renvoie l'exception HRESULT 0x800A03EC lorsque je l'exécute sur une machine Windows XP avec Microsoft Office 2003 installé.Excel 12 Interop HRESULT 0x800A03EC

Ma machine de développement a Windows 7 64bit et Microsoft Office 2007, le programme fonctionne bien.

Mon code SaveAs est en tant que tel:

 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); 

Y at-il des solutions de contournement que je peux utiliser donc je n'ai pas installer Office 2007 sur la machine fonctionnant sous Windows XP?

MISE À JOUR

J'ai installé les assemblys PIA pour Office 2007 et Office 2010 sur la machine Windows XP, qui est également 64bit et je reçois toujours la même erreur. Pourrait-il être un problème d'autorisations avec l'assembly?

+0

double possible de [Windows 7 .net Excel .SaveAs() Exception d'erreur de HRESULT: 0x800A03EC] (http://stackoverflow.com/questions/1981395/windows-7-net-excel-saveas-error -exception-from-hresult-0x800a03ec) –

+0

Je reçois cette erreur sur Windows XP x64, pas sur Windows 7. – NexAddo

+0

C'est une erreur d'Excel, pas une erreur de Windows. Beaucoup plus de hits à ce sujet lorsque vous google "excel saveas error 1004". Il n'y a pas assez d'informations dans votre question pour nous aider à vous aider à l'affiner. –

Répondre

0
  1. Vous pouvez probablement recompiler en utilisant Office 2003 Interop, bien que ce soit .NET 1.1 et (je pense) que disponible à l'Office 2003 d'installation - chercher « Support d'automatisation .NET » ou similaire dans chaque application. J'ai vu des problèmes en utilisant le code construit pour. NET 1.1 dans 2+, cependant, en particulier les constructeurs échouent - mais complètement répétable, donc si cela fonctionne, il n'y a pas de problème.

  2. Vous pouvez utiliser directement l'objet COM Excel. Le résultat devrait alors fonctionner pour Excel 7 et plus tard. Les signatures de fonction sont globalement les mêmes, bien que vous deviez maintenant convertir toutes les énumérations en entiers pour passer dans les fonctions. Si vous utilisez simplement Excel pour créer une simple feuille de calcul (ou une feuille de calcul simple), vous pouvez ignorer complètement Excel et use one of these libraries pour générer la feuille de calcul à la place.

Questions connexes