créer un document word avec Open XML

Je suis entrain de créer un exemple de gestionnaire de générer simple document Word.

Ce document contient le texte Bonjour tout le monde

C'est le code que j'utilise C# .NET 3.5),

J'ai reçu le document Word créé, mais il n'y a aucun texte, la taille est de 0.

Comment puis-je résoudre ce problème?

(J'utilise CopyStream méthode CopyTo est disponible dans .NET 4.0 et au-dessus seulement.)

public class HandlerCreateDocx : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
using (MemoryStream mem = new MemoryStream())
{
//Create Document
using (WordprocessingDocument wordDocument =
WordprocessingDocument.Create(mem, WordprocessingDocumentType.Document, true))
{
//Add a main document part. 
MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();
//Create the document structure and add some text.
mainPart.Document = new Document();
Body body = mainPart.Document.AppendChild(new Body());
Paragraph para = body.AppendChild(new Paragraph());
Run run = para.AppendChild(new Run());
run.AppendChild(new Text("Hello world!"));
mainPart.Document.Save();
//Stream it down to the browser
context.Response.AppendHeader("Content-Disposition", "attachment;filename=HelloWorld.docx");
context.Response.ContentType = "application/vnd.ms-word.document";
CopyStream(mem, context.Response.OutputStream);
context.Response.End();
}
}
}
//Only useful before .NET 4
public void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[16 * 1024]; //Fairly arbitrary size
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, bytesRead);
}
}
}
Je recommande d'utiliser le format XML Ouvert la Productivité de l'Outil de débogage de votre document. Également envisager de créer le document dans Word d'abord, puis utiliser l'outil pour vous donner le code qui permettra de créer le document.

OriginalL'auteur Tuyen Nguyen | 2013-04-24