1

私のコードは以下です。Open XML で Word ドキュメントを開こうとしていて、特定のテキストを変更しようとしています。次に、ドキュメントをクライアントに送信して、PC に保存したり開いたりする必要があります。クライアントにドキュメントを送信しますが、空白です。InMemory ドキュメントを保存すると、ファイルを開くことができないと表示されます。このファイルには、少なくとも 1 つのルート要素が含まれている必要があります。Visual STudio 2010 Express を使用しています。私を助けてください。コードの何が問題になっていますか?

   Dim fileName As String = "directory on server\doc.docx"

    Dim myDocument As WordprocessingDocument = WordprocessingDocument.Open(fileName, True)

    Dim docText As String = Nothing

    Dim sr As StreamReader = New StreamReader(myDocument.MainDocumentPart.GetStream)
    docText = sr.ReadToEnd
    sr.Close()

    Dim regexText As Regex = New Regex("XXXCourtXXX")
    docText = regexText.Replace(docText, "JOHANNESBURG")

    Dim ms As New MemoryStream()
    Dim sw As StreamWriter = New StreamWriter(ms)

    sw.Write(docText)
    myDocument.MainDocumentPart.FeedData(ms)

    Dim mem = New MemoryStream()
    myDocument.MainDocumentPart.GetStream().CopyTo(Response.OutputStream)
    Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
    Response.AppendHeader("Content-Disposition", "attachment;filename=Notice.docx")
    mem.Position = 0
    mem.CopyTo(Response.OutputStream)
    Response.Flush()
    Response.End()
4

1 に答える 1

0

新しいメモリ ストリーム mem を薄暗くし、何も書き込まずに出力ストリームにコピーしています。mem 変数を参照しているすべての行を削除します。

于 2012-09-03T11:33:19.440 に答える