2013-03-21 2 views
2

У меня есть базовый код, который создает файл в консоли (см. Ниже). Но я пишу приложение MVC, поэтому мне нужно вернуть этот XML-документ как ActionResult .... Я искал в Интернете 2 часа в поисках простой пример без везения.Как вернуть MVC ActionResult документа OPENXML Word?

Что я могу добавить к этому, чтобы сделать его ActionResult?

 string filePath = @"C:\temp\OpenXMLTest.docx"; 
     using (WordprocessingDocument doc = WordprocessingDocument.Create(filePath, WordprocessingDocumentType.Document)) 
     { 
      //// Creates the MainDocumentPart and add it to the document (doc)  
      MainDocumentPart mainPart = doc.AddMainDocumentPart(); 
      mainPart.Document = new Document(
       new Body(
        new Paragraph(
         new Run(
          new Text("Hello World!!!!!"))))); 
     } 

ответ

4

Вот пример кода. Обратите внимание, что этот код не загружает файл с диска, он создает файл «на лету» и записывается в MemoryStream. Изменения, необходимые для записи на диск, минимальны.

public ActionResult DownloadDocx() 
    { 
     MemoryStream ms; 

     using (ms = new MemoryStream()) 
     { 
      using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(ms, WordprocessingDocumentType.Document)) 
      { 
       MainDocumentPart mainPart = wordDocument.AddMainDocumentPart(); 

       mainPart.Document = new Document(
        new Body(
         new Paragraph(
          new Run(
           new Text("Hello world!"))))); 
      } 
     } 

     return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "Test.docx"); 
    } 
Смежные вопросы