Exportation d'un document (fichier)vers word,excel,fichier texte

cs_akouavi Messages postés 3 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 avril 2006 - 28 nov. 2005 à 13:15
cs_DeathAngel Messages postés 117 Date d'inscription vendredi 12 avril 2002 Statut Membre Dernière intervention 13 avril 2007 - 29 nov. 2005 à 10:23
comment exporter un fichier (image ou non) qu'on a au prealable
inseré dans une base Access vers word, excel, fichier texte, ou nouvelle base de donnees en utilisant ASP,VBScript ou JScript?
Merci

1 réponse

cs_DeathAngel Messages postés 117 Date d'inscription vendredi 12 avril 2002 Statut Membre Dernière intervention 13 avril 2007
29 nov. 2005 à 10:23
Salut akouavi,

J'ai fait ça dans avec des pdf stockés dans une base SQL server.
Mais je pense que le principe est le même (champ de type blob, ou Fichier je crois dans Acces )
Mon code est en ASP.Net, mais il est facilement convertible en VB. Par contre, je sais pas si c'est faisable en JS (peut-être via AJAX).

'================Code Principal ======================
'==========A mettre sur le clic d'un bouton par ex ============
Dim l_str_SQL
As
String
Dim l_byt_Pdf
As
Byte()

Dim l_str_Script
As
String
Dim l_str_Repertoire As String = "Mon repertoire"
Dim l_str_NomFichier
As
String
Dim fil_FichierPDF
As System.IO.FileStream


l_str_SQL = "SELECT MonChamp Fichier "
l_str_SQL += "FROM MaTable "
l_str_SQL += "WHERE MesConditions"

'Attention, il faut être sûr que tu stockes tout le fichier dans ton champ (en-tête comprise)
l_byt_Pdf = SqlBlob2Buffer(l_str_SQL)


l_str_NomFichier = "MonFichier.MonExtension" 'On pourrai récupérer ce nom depuis la BD


fil_FichierPDF = File.Create(l_str_Repertoire & "" & l_str_NomFichier)


With fil_FichierPDF
.Write(l_byt_Pdf, 0, l_byt_Pdf.Length)
.Close()

End
With

'================Fin Code Principal ======================

'Fonction qui convertit un champ Blob en tableau de bits
Private Function SqlBlob2Buffer(ByVal p_str_SQL As String) As Byte()

Dim PictureCol
As
Integer = 0 'Colonne dans laquelle on va lire les données

Dim cn
As
New SqlConnection("MaChaineDeConnexion")

Dim cmd
As
New SqlCommand(p_str_SQL, cn)
Dim dr
As SqlDataReader = cmd.ExecuteReader()

cn.Open()


dr.Read()



Dim b(dr.GetBytes(PictureCol, 0,
Nothing, 0,
Integer
.MaxValue) - 1)
As
Byte


dr.GetBytes(PictureCol, 0, b, 0, b.Length)


dr.Close()


cn.Close()



Return b



End
Function

Petite explication sur GetBytes :
Cette fonction lit les données sous forme de bits du datareader dans la colonne spécifiée (premier paramètre), les stocke dans le tableau de bits passé en paramètre, et renvoie le nombre de bits lus.
Dans le premier appel, on s'en sert pour savoir combien de bits il y a, sans stocker les données dans un buffer, et dans le second appel, on lit vraiment les données pour les stocker dans le buffer.
Consulte MSDN pour de plus amples infos ^o^

@peluche, et bon dév'

DA
0
Rejoignez-nous