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 |
Partager