Как заполнить текстовый документ с помощью Visual Basic / Visual C # в ASP.NET - PullRequest
0 голосов
/ 24 мая 2011

Я ищу варианты для заполнения документа Word из Visual Basic или Visual C #.В настоящее время я использую поля слияния и приведенный ниже код для заполнения определенных полей в документе 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

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

Вы можете записать в HTML и сохранить его с расширением .doc, и Word с этим справится.

0 голосов
/ 07 июня 2011

Так же, как мой ответ на ваш вопрос относительно Excel, Office Writer будет работать и для вас здесь!

...