IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Fichier Excel vers fichier PDF en vb.net (Exception de HRESULT : 0x800401A8)


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Fichier Excel vers fichier PDF en vb.net (Exception de HRESULT : 0x800401A8)
    Bonjour,

    J'ai réalisé un site internet qui permet de créer un fichier Excel et de l'enregistrer au format PDF (fonction ajoutée par SaveAsPdf sur Office 2007).
    Solution 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyWorkbook.SaveAs(vvFileName, 57)
    Solution 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyWorkbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypeXPS, MyFileName, XlFixedFormatQuality.xlQualityStandard, False, False, , , False, )
    Quand j'exécute ce script en local sur ma machine, les deux solutions fonctionnent correctement. Quand je l'exécute sur mon serveur internet j'ai le message suivant:
    Erreur du serveur dans l'application '/'.
    --------------------------------------------------------------------------------

    Exception de HRESULT : 0x800401A8
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.Runtime.InteropServices.COMException: Exception de HRESULT : 0x800401A8

    Erreur source:

    Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

    Trace de la pile:

    [COMException (0x800401a8): Exception de HRESULT : 0x800401A8]
    Microsoft.Office.Interop.Excel.WorkbookClass.ExportAsFixedFormat(XlFixedFormatType Type, Object Filename, Object Quality, Object IncludeDocProperties, Object IgnorePrintAreas, Object From, Object To, Object OpenAfterPublish, Object FixedFormatExtClassPtr) +0
    Pourtant la configuration semble être la même sur les deux machines.
    ...

    Merci de m'aider.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 94
    Points : 95
    Points
    95
    Par défaut
    Bonjour,

    Est-ce que Excel est installé sur ton serveur ?
    Si oui, est-ce que c'est la même version que sur ton poste ?

    Si mes souvenirs sont bons, j'ai eu le même problème, car le serveur n'avait pas Excel. Ne pouvant installé Excel sur le serveur concerné, j'ai utilisé une autre librairie, mais je ne sais plus laquelle. Un truc propriétaire, je crois.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Excel 2007 et SaveAsPdf sont installés sur les deux machines.

    Je ne suis pas certain que ce soit exactement les mêmes versions notamment:
    - Version entreprise de mon coté, je ne sais pas coté serveur,
    - Service pack et hotfix, dernières version de mon coté, je ne sais pas coté serveur.

    Je me fais confirmer ces deux points et je complète dès que j'ai les info

    Merci pour ton aide!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Version du serveur
    Excel 2007 (12.0.6524.5003) SP2 MSO (12.0.6251.5000)

    Version sur mon poste
    Excel 2007 (12.0.6514.5000) SP2 MSO (12.0.6510.5000)

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    apparemment c'est un problème classique.

    essaye ca :
    http://social.msdn.microsoft.com/for...4-39c77c191f1e

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    J'ai lu attentivement l'article et j'ai essayé plusieurs choses sans succès:
    -ajouter toutes les ,
    -typer les paramètres (Type:=...,Filename:=...)

    Quelques précisions:

    La publication au format pdf fonctionne en local mais génère l'exception sur le serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyWorkbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, vvFileName, XlFixedFormatQuality.xlQualityStandard, False, False, , , False, )
    L'enregistrement au format pdf fonctionne en local mais génère l'exception sur le serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyWorkbook.SaveAs(vvFileName, 57, , , , , , , , , , )
    L'enregistrement au format xlsx fonctionne en local ET sur le serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyWorkbook.SaveAs(vvFileName, 51, , , , , , , , , , )
    Le problème ne semble pas venir de la commande SaveAs mais du format pdf ajouté par l'addon SaveAsPdf de Office 2007.

    Merci pour ton aide.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    Si tu essayes d'enregistrer manuellement au format pdf sur le serveur ca marche? et est ce que tu as un compte admin sur le serveur? des fois qu'il y aie des problemes de droits, sait on jamais.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Directement sur le serveur, on peut enregsitrer au format pdf avec Excel. Ca fonctionne.
    J'ai écarté un problème de droit d'écriture dans le répertoire, vu que l'enregistrement au format xlsx ne pose pas de problème.

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    Bon, je n'ai plus di'idée alors, peut etre essayer les forums MSDN.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    En tout cas merci d'avoir essayé.
    Je continue mes investigations.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 94
    Points : 95
    Points
    95
    Par défaut
    J'ai toujours pas la solution.
    Est-ce que les paramètres régionaux sont les mêmes sur ton poste que sur le serveur. Je sais que les virgules/points peuvent poser des problèmes.

    NB : C'est peu probable que le problème vienne de là, sinon ton xlsx rencontrait le problème ou serait dans un mauvais format (trop de colonnes)

    Bon courage

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Points : 214
    Points
    214
    Par défaut
    Ce qui m'étonne c'est le type de l'exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Runtime.InteropServices.COMException
    Cette exception est normalement levée quand on utilise un composant COM, ce qui n'est logiquement pas le cas avec Office 2007. Peut-être qu'office 2003 est également installé sur le serveur et qu'il interfère ?

    Sinon personnellement j'utilise PDFCreator pour la conversion PDF. C'est gratuit, ca marche plutôt bien et il peut convertir n'importe quel type de fichier du moment qu'il est imprimable. Par contre attention lors de la conversion de document Word : il faut utiliser la fonction PrintOut de word et pas faire un "shell print" comme pour les autres types, sinon risque que ca imprime au lieu de convertir.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    "Bien vu l'aveugle" disait le muet au sourd.



    La présence d’Office 2003 est confirmée ainsi que les conflits entre 2003 et 2007. Ceci semble marcher sur une autre machine de test qui n'a pas Office 2003.

    Pour le moment la solution semble fonctionner avec des droits admin. Il reste à réduire ces droits pour permettre au service réseau d’utiliser Excel sans ouvrir les droits système. Ca ne parait pas si évident à priori.
    Merci à mon hébergeur pour ses investigations, ses tests et ce résultat. (http://rdmedias.com/)

    J'attends la mise à disposition d'une machine sans Office 2003 pour reprendre la mise en production et valider la solution.

    A suivre…

    Pour PdfCreator, j’ai beaucoup utilisé ce produit dans le passé et je le trouve super. Si on parle de la même chose, il s’agit d’émuler une imprimante virtuelle qui « imprime » dans un pdf à l’aide de ghostscript.
    Dans le cas d’un serveur Web, cela me semble compliqué. Il faudrait que mon provider accepte d’installer ce produit sur le serveur et que je puisse piloter cette imprimante en vb.net.

    Merci à tous les participants.

    Bon j'arrête avec les mercis, j'ai l'impression d'avoir gagner un Oscar !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion fichier Excel vers fichier PDF sur Mac
    Par Invité dans le forum Documents
    Réponses: 19
    Dernier message: 19/02/2015, 14h57
  2. Réponses: 4
    Dernier message: 11/09/2014, 13h40
  3. Exportation d'un fichier excel vers Access
    Par Alkemist dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/01/2006, 16h37
  4. Passer d'un fichier Excel vers mon PRG VB et vice versa
    Par DAN68 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/12/2005, 13h42
  5. Migrer un fichier excel vers une base sql serveur
    Par vdavid1982 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/07/2005, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo