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 :

Excel Workbook dans My.Ressources


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut Excel Workbook dans My.Ressources
    Bonjour,

    Pour mon programme en cours j'ai besoin d'exporter puis d'imprimer des données (beaucoup de données) dans un document Excel, et vu que le format est conventionné pour les audit je n'ai pas envie de me taper tout le formatage via le code VB.

    J'ai donc crée le doc sur excel puis je l'ai mis dans My.Ressources, mais lorsque je l'appelle j'ai un petit souci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim monAppli As Excel.Application = DirectCast(CreateObject("Excel.Application"), Excel.Application)
            Dim monClasseur As Excel.Workbook = DirectCast(My.Resources.ModeleExportSlowMoving, Excel.Workbook)
            Dim mafeuille As Excel.Worksheet = DirectCast(monClasseur.Worksheets.Add, Excel.Worksheet)
    Le message d'erreur est :

    Impossible d'effectuer un cast d'un objet de type 'System.Byte[]' en type 'Microsoft.Office.Interop.Excel.Workbook'.
    Et je ne vois pas bien comment je pourrais transformer un tableau de byte en doc xls...

    Toute suggestion est la bienvenue, même une autre façon de faire

  2. #2
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    J'ai fait ça y a pas lgt...

    Je cherche le bout de code et j'te file ça

    EDIT :

    Et voici ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    IO.File.WriteAllBytes(IO.Path.GetTempPath & "temp.xls", My.Resources.userManagement)
    Dim xlApp As Excel.Application = Nothing
    Dim xlBook As Excel.Workbook = Nothing
    Dim xlSheet As Excel.Worksheet = Nothing
    xlApp = New Excel.Application
    xlBook = xlApp.Workbooks.Open(System.IO.Path.GetTempPath + "temp.xls")
    Donc en fait, ça extrait le fichier des ressources et ça l'écrit sur le disque dans le répertoire temp. Après tu l'ouvres normalement.
    Si tu as des questions, n'hésite pas mais je pense que c'est assez clair

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut
    Merci Griftou,

    J'ai trouvé un bout de code équivalent sur le msdn:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim monAppli As Excel.Application = DirectCast(CreateObject("Excel.Application"), Excel.Application)
            Dim TempFileName As String = "ModeleExportSlowMoving"
            TempFileName = Application.StartupPath & "\" & TempFileName
            Dim fs As New FileStream(TempFileName, FileMode.Create, FileAccess.Write)
            Dim fsR As New BinaryWriter(fs)
            fsR.Write(My.Resources.ModeleExportSlowMoving, 0, My.Resources.ModeleExportSlowMoving.Length)
            fsR.Close()
            fs.Close()
            monAppli = New Excel.Application
            monAppli.Workbooks.Add(TempFileName)
            Dim monClasseur = monAppli.Workbooks.Item(1)
            Dim maFeuille = monClasseur.ActiveSheet
    Je t'accorde que le tien est plus court

    EDIT :

    Tellement plus court que finalement je l'ai repris et encore raccourci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IO.File.WriteAllBytes(IO.Path.GetTempPath & "ModeleExportSlowMoving", My.Resources.ModeleExportSlowMoving)
            Dim monAppli = New Excel.Application
            Dim monClasseur = monAppli.Workbooks.Open(System.IO.Path.GetTempPath & "ModeleExportSlowMoving")
            Dim maFeuille = monClasseur.ActiveSheet
    EDIT2 :

    Par contre j'ai ajouté ça en fin de procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If File.Exists(System.IO.Path.GetTempPath & "ModeleExportSlowMoving") Then
                File.Delete(System.IO.Path.GetTempPath & "ModeleExportSlowMoving")
            End If
    Puisque le fichier est crée dans le dossier Temp, je le détruis.

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    C'est pas un dossier qui est nettoyé tous les x temps ? ^^

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

Discussions similaires

  1. [VB6] [Excel] Feuille dans une form, sans excel installé
    Par ro2v dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 05/05/2010, 12h45
  2. Réponses: 5
    Dernier message: 16/07/2005, 00h01
  3. Ajouter des icones dans vos ressources
    Par Eric Boisvert dans le forum EDI
    Réponses: 1
    Dernier message: 24/05/2005, 20h02
  4. [Excel]pb dans la faq
    Par libititi dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/04/2005, 11h20
  5. Inclure une dll dans une ressource
    Par bgcode dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/08/2003, 11h12

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