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

C# Discussion :

Copie de modèle Excel corrompue


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Par défaut Copie de modèle Excel corrompue
    Bonjour bonjour,

    Après deux demi-journées de recherche sur le net, je me résout à venir demander un petit coup de pouce sur le forum

    Voilà mon problème, je stock un modèle excel (format .xltm) sur mon serveur que je souhaites importer en local. J'utilise donc pour cela le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public static byte[] GetFichierExcel(string pathFichier)
    {
         // Ouverture d'un flux à partir du fichier sur le serveur
         FileStream fileStream = (new FileStream(pathFichier, FileMode.Open, FileAccess.Read, FileShare.Read));
         // Création d'un tableau d'octets de la taille du flux
         var buffer = new byte[fileStream.Length];
         // Alimentation du tableau à partir du flux
         fileStream.Read(buffer, 0, (int)fileStream.Length);
         // Fermeture du flux
         fileStream.Close();
     
         return buffer;
    }
    Jusque là pas de souci. Je file ensuite le tableau de byte à une fonction pour créer le fichier en local :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fichier.CreerFichier(pathLocal, buffer);
    Je vois bien le fichier se créer dans mon arborescence et lorsque je tente de l'ouvrir dans mon code pour l'ajouter en tant que modèle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    xlApp = new Microsoft.Office.Interop.Excel.Application();
    xlWorkBook = xlApp.Workbooks.Add(pathModelLocal);
    Il me renvoie l'erreur : Exception de HRESULT : 0x800A03EC

    Et quand j'ouvre le fichier créé en double-cliquant dessus, il m'annonce qu'Excel a rencontré du contenu illisible...

    Pour les tests, j'ai donc essayé d'utiliser mon modèle de base et de le copier/coller à la main en local, et à ce moment là pas de souci, mon code le prend bien et tout s'éxecute normalement

    J'en vient donc à penser que je dois faire quelque-chose de mal lors de la lecture du fichier sur le serveur pour aller le créer en local... Une idée ?

    Merci d'avance !

  2. #2
    Membre éprouvé Avatar de Zeckard
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2012
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 108
    Par défaut
    Bonjour !

    Essaie de rajouter ça :

    Citation Envoyé par El-Toro Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public static byte[] GetFichierExcel(string pathFichier)
    {
         // Ouverture d'un flux à partir du fichier sur le serveur
         FileStream fileStream = (new FileStream(pathFichier, FileMode.Open, FileAccess.Read, FileShare.Read));
         // Création d'un tableau d'octets de la taille du flux
         var buffer = new byte[fileStream.Length];
    
         fileStream.Seek(0, SeekOrigin.Begin);
    
         // Alimentation du tableau à partir du flux
         fileStream.Read(buffer, 0, (int)fileStream.Length);
         // Fermeture du flux
         fileStream.Close();
    
         return buffer;
    }

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Par défaut
    Hello Zeckard

    Pas mieux, même erreur et le fichier contient toujours du contenu illisible quand je tente de l'ouvrir

  4. #4
    Membre éprouvé Avatar de Zeckard
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2012
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 108
    Par défaut
    Une fois que tu as copié ton fichier. Au lieu de l'ouvrir avec ton code, essaie de l'ouvrir à la main. Regarde s'il est corrompu à ce moment là. S'il ne l'est pas quand tu l'ouvres à la main c'est que le problème ne vient pas de la copie.

    Cette erreur peut aussi provenir de versions différentes d'Excel. Avec quelle version a été fait ton modèle ? Est-ce la même version en local ?

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Par défaut
    C'est ce que je fais oui, je l'ouvre à la main et le message exact est "Excel a rencontré du contenu illisible dans "nomDuFichier.xltm". Voulez-vous récupérer le contenu de ce classeur ? Si la source de ce classeur est fiable, cliquez sur Oui." Donc déjà ici on assiste à un blocage d'Excel, et si je clique sur "Oui", j'ai "Le classeur ne peut pas être ouvert ni réparé par Microsoft Excel car il est corrompu." Mais ces messages s'affichent seulement pour le fichier qui a été créé, alors que l'original ne pose aucun problème quand je l'ouvre manuellement.

    En ce qui concerne les versions, j'ai créé le modèle sous Excel 2010 à la base. Je l'ai ensuite stocké sur le serveur, et chez moi j'ouvre bien entendu le modèle sous Excel 2010 aussi. Je vais essayer de recréer le fichier quand même une nouvelle fois, malheureusement je ne peux pas tester avec une version d'Excel inférieure à la mienne... Je te tiens au jus

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Par défaut
    Bon ce n'est pas ça non plus...

    J'ai essayé en recréant un fichier from scratch au format .xltm et .xltx au cas où mais même résultat

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

Discussions similaires

  1. Fichier excel corrompu apres copie
    Par jaudurier dans le forum Maven
    Réponses: 6
    Dernier message: 03/07/2007, 10h57
  2. [VBA][Excel] Avec les modèles Excel.
    Par mulanzia2003 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/08/2006, 10h27
  3. VBA 'copie de fiers excel ou access
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 02/07/2006, 18h17
  4. [VBA-E]Copie graphique de excel vers word
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/02/2006, 10h49
  5. [VBA-E]copie de feuille excel
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/02/2006, 14h20

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