【问题标题】:How to fill a word document using Visual Basic / Visual C# in ASP.NET如何在 ASP.NET 中使用 Visual Basic / Visual C# 填充 Word 文档
【发布时间】:2011-05-24 17:47:34
【问题描述】:

我正在寻找从 Visual Basic 或 Visual C# 填充 Word 文档的选项。我目前正在使用合并字段和下面的代码来填充 Word 文档中的特定字段,但现在我遇到了需要将表格数据推送到 MS Word 的情况。无论如何从网格视图中获取数据(行数是动态的),并使用合并字段或类似的东西将其导入 Word 文档表?我必须维护我的模板文档的格式,并且希望能够控制页面的布局..

            Dim templateDoc As String = Server.MapPath("\Userfiles\docs\" & location)
            Dim mergePath As String = Server.MapPath("\App_Data\Temp\")
            Dim mergeFileName As String = location.Replace("/", "_") & ".docx"
            Dim mergeDoc As String = mergePath & "\" & mergeFileName

            File.Copy(templateDoc, mergeDoc, True)

            Using pkg As Package = Package.Open(mergeDoc, FileMode.Open, FileAccess.ReadWrite)

                Dim uri As Uri = New Uri("/word/document.xml", UriKind.Relative)
                Dim part As PackagePart = pkg.GetPart(uri)

                Dim xmlMainXMLDoc As XmlDocument = New XmlDocument()
                xmlMainXMLDoc.Load(part.GetStream(FileMode.Open, FileAccess.Read))

                Dim innerXml As String = xmlMainXMLDoc.InnerXml _
                                         .Replace("«Corporate Legal Name»", businessName) _
                                         .Replace("«Address 1»", mailingAddress1) _
                                         .Replace("«Address 2»", mailingAddress2) _
                                         .Replace("«City»", city)
                xmlMainXMLDoc.InnerXml = innerXml

                Using partWriter As New StreamWriter(part.GetStream(FileMode.Open, FileAccess.Write))
                    xmlMainXMLDoc.Save(partWriter)
                End Using

                pkg.Close()
            End Using

【问题讨论】:

    标签: asp.net vb.net ms-word export-to-word mergefield


    【解决方案1】:

    你可以用 HTML 写出来,并用 .doc 扩展名保存它,Word 会优雅地处理它。

    【讨论】:

    • 你有例子吗?我必须写出整个文档的 HTML 吗?这似乎很耗时,并且需要大量代码......
    • 为什么不用 html table 替换一些其他合并字段?
    • 我希望这就是你的意思......所以如果我有一个网格视图,我不能使用 HTML 编写器将 gridview html 输出到合并字段吗?有什么造型方法吗?
    • 我不确定它是否会保持它的风格,但会尝试一下。谢谢。
    【解决方案2】:

    就像我对您关于 Excel 的 question 的回答一样,Office writer 也适用于您!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多