Bloqueado VB XML docx

  • quinta-feira, 12 de fevereiro de 2009 17:59
     
      Contém Código
    Bonjour,


    J'ai lu l'article de programmez (la revue)  pour générer des docx et xlsx à l'aide de la bilbiothèque DocumentFormat.OpenXml 2.0  (article que l'on retrouve aussi ici (à peu de de choses près) http://msdn.microsoft.com/fr-fr/office/msdn.openxml.2.0.sdk.aspx )

    L'intérêt de cette méthode est qu'office n'a pas à être installé sur la machine qui génère, ou utilise un document office 2007.

    Je suis sous VS 2005 ( oui, je sais...)

    J'ai ajouté une référence à DocumentFormat.OpenXml 2.0

    Voici mon code... (juste traduit -me semble-t-il-)

    Imports DocumentFormat.OpenXml.Packaging  
    Imports DocumentFormat.OpenXml.Wordprocessing  
    Public Class Form1  
     
     
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
            Dim PacquageWordDoc As DocumentFormat.OpenXml.Packaging.WordprocessingDocument  
            PacquageWordDoc = WordprocessingDocument.Create("d:\test.docx", DocumentFormat.OpenXml.WordprocessingDocumentType.Document)  
     
            'Ajouter une partie de contenu au document   
            PacquageWordDoc.AddMainDocumentPart()  
            '   /Créer le contenu de votre document   
            PacquageWordDoc.MainDocumentPart.Document = New DocumentFormat.OpenXml.Wordprocessing.Document(New Body(New Paragraph(New Run(New Text("Hello World !")))))  
     
            '// Enregistrer le contenu dans le document   
            PacquageWordDoc.MainDocumentPart.Document.Save()  
        End Sub  
    End Class 
     
    Un fichier est bien généré, word 2007 ne l'ouvre pas sous pretexte de corruption ...

    Un idée ?

    Merci

Todas as Respostas

  • sexta-feira, 21 de agosto de 2009 16:41
     
     Resposta Proposta Contém Código
    'Dans l'en-tête :
     
    Imports DocumentFormat.OpenXml
    Imports DocumentFormat.OpenXml.Packaging 
    Imports DocumentFormat.OpenXml.Wordprocessing 
    
    'Dans la fonction :
    
    Using package As WordprocessingDocument = _
          WordprocessingDocument.Create(docName, _
          wordprocessingDocumentType.Document)    
    
         ' Ajouter une partie de contenu au document 
    
         package.AddMainDocumentPart()    
    
         ' Créer le contenu de votre document
         
         package.MainDocumentPart.Document = _ 
         New Document( _ 
         New Body( _ 
         New Paragraph( _ 
         New Run( _ 
         New Text("Hello World !")))))       
     
        ' Enregistrer le contenu dans le document     
    
        package.MainDocumentPart.Document.Save() 
    End Using 
    
    
    Ce code fonctionne... avec VS 2008 (et sous .NET 3.5).
    Il est directement traduit de la version C# prise au même endroit.
    • Editado pinacolada sexta-feira, 21 de agosto de 2009 18:10
    • Sugerido como Resposta Josselin terça-feira, 17 de novembro de 2009 10:13
    •