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
|
Private Sub WordMLButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles WordMLButton.Click
Dim dstest As New DataSet
dstest.ReadXml("cd.xml")
'On crée le fichier texte sur base d'un fichier xml avec une feuille de style xsl
Dim test1 As String = GetTXTFile(dstest, "temp.txt", "Copy of cdStyleSheet.xsl")
'On va lire le fichier résultat de la transformation xml xsl
Dim fichiertxt As String = My.Computer.FileSystem.ReadAllText("temp.txt")
My.Computer.FileSystem.DeleteFile("temp.txt")
Dim textetmp As String = ""
'On ajoute l'en-tête du document pour que celui ci soit reconnu comme un wordml
textetmp = "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?><?mso-application progid=""Word.Document""?>"
textetmp += fichiertxt
'On crée le fichier final wordml et on met le boolean à false pour qu'il écrive au dessus si le fichier est déjà présent
My.Computer.FileSystem.WriteAllText("OutPut.xml", textetmp, False)
'On vide le string texte temporaire si on refait le fichier pour qu'il soit neuf et non un doublon
textetmp = ""
'On ouvre le fichier créé
System.Diagnostics.Process.Start("Output.xml")
End Sub
Function GetTXTFile(ByVal DataToOuput As DataSet, ByVal OutputFileName As String, ByVal XSLModel As String) As String
Dim retval As String = OutputFileName
Dim ds As New DataSet("Resultat")
For Each dt As DataTable In DataToOuput.Tables
ds.Tables.Add(dt.Copy)
Next
Dim xmlDoc As XmlDataDocument = New XmlDataDocument(ds)
Dim xslTran As System.Xml.Xsl.XslCompiledTransform = New System.Xml.Xsl.XslCompiledTransform
xslTran.Load(XSLModel)
Dim writer As XmlTextWriter = New XmlTextWriter( _
retval, System.Text.Encoding.UTF8)
xslTran.Transform(xmlDoc, Nothing, writer)
writer.Close()
Return retval
End Function |