1

我的代码如下。我正在尝试使用 Open XML 打开 Word 文档并更改某些文本。然后必须将文档发送给客户,他们可以将其保存在他们的 PC 上或打开它。它将文档发送给客户端,但它是空白的。当我保存我的 InMemory 文档时,它说文件无法打开,它必须包含至少一个根元素。我正在使用 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 回答