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 :

[VB 2008] utilisation fichier excel dans My.resources


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable BE Elec/autom
    Inscrit en
    Septembre 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable BE Elec/autom
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 27
    Par défaut [VB 2008] utilisation fichier excel dans My.resources
    bonsoir,

    Utilisant des fichiers Excels dans mon application,
    je souhaiterais intégrer les fichiers dans my.resources,

    mon problème est le suivant :
    je n'arrive pas à trouver la syntaxe pour utiliser les fichiers Excels qui ont
    été déclaré dans My.resources

    Si j'écrit les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim appExcel As Object
    Dim wbExcel As Object
     
    appExcel = CreateObject("excel.application")
    wbExcel = appExcel.Workbooks.Open(My.Resources.Gestion_pointage)
    Gestion_pointage étant le nom du fichier excel dans my.resources

    L'erreur est la suivante :
    Le type ne correspond pas. (Exception de HRESULT : 0x80020005 (DISP_E_TYPEMISMATCH))
    Quelqu'un aurait-il une idée ??

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 28
    Par défaut
    Hello,

    etrange que personne n'est essaye de te mettre sur la voie... du coup je vais essayer de t'aiguiller .
    Le soucis, c'est que je suis moi-meme debutant donc si je me trompe, ne m'en veux pas trop!

    Pour repondre a ta question, je crois que les types de fichiers exploitables directement dans
    My.Resources sont tres "limites" : genre Jpg, peut etre Mid...etc... je n'ai pas de liste precise desole.

    Du coup, tu peux contourner ton probleme en "extrayant" ton fichier de My.Resources avant de l'utiliser,
    et pour cela je puis t'aider :

    Dans ton explorateur de solution, ajoute ton fichier Excel, et dans ses proporietes "Build Action" choisis
    bien "Embedded Resource" (ca doit etre "resource incorpore" ou quelque chose comme ca en francais).
    Ensuite il te suffit d'extraire ta resource par 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
    15
    16
    17
    18
     
    'Extraction du fichier MonFichier.xls vers le dossier temp.
            Dim assembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
            Dim root As String = assembly.GetName().Name
            Dim stream As System.IO.Stream = assembly.GetManifestResourceStream(root & "." & "MonFichier.xls")
            Dim buffer(Convert.ToInt32(stream.Length) - 1) As Byte
            stream.Read(buffer, 0, buffer.Length)
            stream.Close()
            Dim f As System.IO.FileStream
            f = New IO.FileStream(System.IO.Path.GetTempPath + "MonFichier.xls", IO.FileMode.Create, IO.FileAccess.Write)
            f.Write(buffer, 0, buffer.Length)
            f.Close()
     
    Dim appExcel As Object
    Dim wbExcel As Object
     
    appExcel = CreateObject("excel.application")
    wbExcel = appExcel.Workbooks.Open(System.IO.Path.GetTempPath + "MonFichier.xls")
    Voila, c'est un peu plus complique que "simplement" lire My.Resources mais ca devrait fonctionner!
    Le soucis, c'est que je ne pense pas que tu pourra mettre ton fichier Excel a jour dans My.Resource une
    fois que tu aura fais des modifs...
    En gros c'est bien si ton fichier Excel te sers modele.

    Bonne continuation!

    Cz

  3. #3
    Membre très actif
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Par défaut
    je n'ai jamais utiliser de document excel en .net
    mais tout les fichier que je lit .txt .xml .ini etc ... sont placé dans
    Mes documents\Visual Studio 2005\Projects\MonProjet\MonProjet\bin\Debug\

    c'est une variable qui s'appelle StartupPath

    aprés tu devrait pour charger ton fichier excel avec un objet ( que je ne connait pas)


    et tu l'appelle grace au chemin StartupPath & "monclasseur.xls"

    cordialement

  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
    Bonjour,

    Je me permets de remonter ce vieux sujet car je suis confronté au même problème que l'auteur initial.

    De plus, la procédure proposée par la seule personne ayant daigné répondre ne semble pas fonctionner chez moi (je suis en train de début mais bon...)

    Quelqu'un aurait-il des infos sur ce sujet ?

    Griftou.

  5. #5
    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
    Hello,

    J'ai trouvé ceci qui m'a été utile.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Imports System.IO
     
    'Ce bouton permet de copier le fichier dans le répertoire de l'application
       Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim path_excel As String
     
            path_excel = Application.StartupPath & "\Gestion_pointage.xls"
     
            IO.File.WriteAllBytes(path_excel, My.Resources.Gestion_pointage)
     
     
        End Sub

  6. #6
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut fichier Excel dans My.Resources
    bonjour cedricbollini
    c'est exotique puisque en resources binaires on peut mettre tout(excel,access,word et meme un .exe....) .
    voici le bout de code qui fait le boulot.
    On stocke le fichier Excel dans Resources du projet.Le fichier Excel resource doit etre compile avec dans l'exploration de solution avec option "resources incorporees".
    Dans l'appli il sera lu en binaire et recree sous un autre nom(whatever you want) dans le dossier de l'appli ou ailleurs.
    code:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    '---------------------------------------------------------------------------
    'Creer un fichier Excel avec System.Reflection
    ' et Methode shared AssemblyGetManifestResourceStream("namespace.nomfichier.ext"
    '---------------------------------------------------------------------------
    'NOTA-BENE:
    '1/Recuperer la chaine namespace dans proprites du projet
    '2/Proprietes Projet->Resources->Ajouter Fichier...
    '3/Eplorateur Solution-> Fichier resource ->Proprietes
    '- action de generation =>mettre resource incoporeee 
    Imports System
    Imports System.Windows
    Imports System.Reflection
    Imports System.IO
     
    Public Class Form1
        'NB: le namespace n'est pas accesible dans System.Reflection
        'sera code en "dur".Ici ce sera "ExcelResources"
     
        'Nom Dossier application
        Dim DossierApplication As String = Directory.GetCurrentDirectory
        'Nom du Fichier Excel apres  Recuperation dans My.Resources 
        'Ce nom n'est pas forcement celui d'origine mais peut etre saisi par user
        Dim nomFichierSave As String = "MonClasseur.xls"
        Dim dot As String = "."
        '---------------------------------------------------------------------------
        'Afficher les namespaces courants de l'appli
        'pour verifier eventuellement le namespace exact de l'appli
        '---------------------------------------------------------------------------
        Private Sub btnAfficheNameSpace_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfficheNameSpace.Click
            Dim noms() As String = Me.GetType().Assembly.GetManifestResourceNames()
            For Each nom As String In noms
                txtAfficherNameSpace.Text = txtAfficherNameSpace.Text & nom & vbCrLf
            Next
        End Sub
        '---------------------------------------------------------------------------
        '-------------------------Creation du Fichier Excel-------------------------------
        '---------------------------------------------------------------------------
        Private Sub btnCreeFichExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCreeFichExcel.Click
            Dim objStream As Stream
            Dim objAssembly As Assembly
            Dim objFileStream As FileStream
            'Dim objNameSpace As String
     
            'Tableau octets pour recopie "octets par octets"
            Dim OctetResources() As Byte = New Byte() {}
     
            'Obtient Assembly de l'Application
            objAssembly = Assembly.GetExecutingAssembly
     
            'Nom du Fichier Excel original  dans My.Resources
            Dim nomFichierRes As String = "ClasseurDansResources.xls"
     
            'Lecture de My.resources
            '-----------------------
            objStream = objAssembly.GetManifestResourceStream("ExcelResources" & dot & nomFichierRes)
            If objStream IsNot Nothing Then
                MessageBox.Show(objStream.Length.ToString)
            End If
     
            'Ecriture du fichier Excel recupere dans dossier Application
            '-----------------------
     
            ReDim OctetResources(objStream.Length)
            objStream.Read(OctetResources, 0, objStream.Length)
            objFileStream = New FileStream(DossierApplication & "\" & nomFichierSave, FileMode.Create)
            objFileStream.Write(OctetResources, 0, objStream.Length)
     
        End Sub
    End Class

    BON CODE....

Discussions similaires

  1. Utiliser un fichier swf dans my.resources
    Par shayw dans le forum VB.NET
    Réponses: 4
    Dernier message: 10/06/2014, 13h40
  2. utilisation d'excel dans visual c++ 2008
    Par bind ways dans le forum C++/CLI
    Réponses: 4
    Dernier message: 27/10/2011, 12h14
  3. Importer un fichier excel dans Oracle (utiliser Toad?)
    Par StephMtl dans le forum Import/Export
    Réponses: 1
    Dernier message: 02/09/2011, 16h10
  4. Réponses: 5
    Dernier message: 25/07/2011, 15h37
  5. Réponses: 7
    Dernier message: 04/10/2005, 18h21

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