create word document with Open XML

后端 未结 3 910
栀梦
栀梦 2020-12-16 00:28

I am creating a sample handler to generate simple Word document.
This document will contains the text Hello world

This is the code I use (C# .

3条回答
  •  庸人自扰
    2020-12-16 01:05

    I have modifed your code to make it work. I can open it correctly after save download it. Please see my modified below. Hope this help.

    using (MemoryStream documentStream = new MemoryStream())
    {
        using (WordprocessingDocument myDoc = WordprocessingDocument.Create(documentStream, WordprocessingDocumentType.Document, true))
        {
            // Add a new main document part. 
            MainDocumentPart mainPart = myDoc.AddMainDocumentPart();
            //Create Document tree for simple document. 
            mainPart.Document = new Document();
            //Create Body (this element contains
            //other elements that we want to include 
            Body body = new Body();
            //Create paragraph 
            Paragraph paragraph = new Paragraph();
            Run run_paragraph = new Run();
            // we want to put that text into the output document 
            Text text_paragraph = new Text("Hello World!");
            //Append elements appropriately. 
            run_paragraph.Append(text_paragraph);
            paragraph.Append(run_paragraph);
            body.Append(paragraph);
            mainPart.Document.Append(body);
    
            // Save changes to the main document part. 
            mainPart.Document.Save();
            myDoc.Close();
            context.Response.ClearContent();
            context.Response.ClearHeaders();
            context.Response.ContentEncoding = System.Text.Encoding.UTF8;
            SetContentType(context.Request, context.Response, "Simple.docx");
            documentStream.Seek(0, SeekOrigin.Begin);
            documentStream.CopyTo(context.Response.OutputStream);
            context.Response.Flush();
            context.Response.End();
        }
    }
    

提交回复
热议问题