1

OpenXMLを使用してWord文書を(テンプレートとして)操作することにより、サーバーアプリケーションは新しいコンテンツを一時ファイルとして保存し、ユーザーに送信してダウンロードします。

問題は、これらのコンテンツを一時ファイルとしてサーバーに保存せずにダウンロードできるようにする方法です。OpenXMLの結果をファイルとして保存する代わりに、byte[]またはファイルとして保存することはできますか?Stream

4

2 に答える 2

2

WordprocessingDocumentを作成し、Save()メソッドを使用してそれをに保存できますStream

http://msdn.microsoft.com/en-us/library/cc882497

于 2012-07-09T01:13:54.583 に答える
2

このページの使用: 一時ファイルなしのOpenXMLファイルのダウンロード

コードを次のように変更しました。

byte[] result = null;
byte[] templateBytes = System.IO.File.ReadAllBytes(wordTemplate);
using (MemoryStream templateStream = new MemoryStream())
{
    templateStream.Write(templateBytes, 0, (int)templateBytes.Length);
    using (WordprocessingDocument doc = WordprocessingDocument.Open(templateStream, true))
    {
        MainDocumentPart mainPart = doc.MainDocumentPart;           
        ...         
        mainPart.Document.Save();
        templateStream.Position = 0;
        using (MemoryStream memoryStream = new MemoryStream())
        {
            templateStream.CopyTo(memoryStream);
            result = memoryStream.ToArray();
        }
    }
}
于 2012-07-09T13:16:26.790 に答える