Hallo zusammen,
ich bin gerade daran ein VB.Net tool zu entwickeln, das aus einer Web Applikation via API HTML formatierten Text in ein Word 2003 Template abfüllen soll. Um die, im HTML enthaltene Formatierung, in Word verwenden zu können hab ich bis jetzt nur die Möglichkeit gefunden, den HTML Text Stream in einem temporären Fiel abzuspeichern und danach mit
oDoc.Tables(TableCount).Cell(StepNum, 1).Range.InsertFile ("File.html") in die Tabelle einzufügen.
Leider bekomme ich bei der Ausführung immer die Fehlermeldung:
"An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in GenTestPlanSpec.exe
Additional information: There is insufficient memory. Save the document now."
Trotz der Fehlermeldung wird doch ein Teil der Zellen abgefüllt... die Anzahl ist aber nicht immer gleich. Bei aktivieren von "On Error resume next" erscheint die Fehlermeldung nicht, jedoch wird die Tabelle nur sporadisch abgefüllt. (Komischerweise nur die Streams mit Text=Bold...
Das Einfügen in normale Textblöcke mit
oWord.selection.InsertFile("File.html") Funktioniert richtig.
Hier die Funktion, um eine Tabellenzeile mit 3 Zellen zu füllen:
Function fFillWordTable(ByVal strSteps As String, ByRef oDoc As Object, ByVal _
StepNum As Integer, ByVal TableCount As Byte, ByVal strStep As String, ByVal _
strDesc As String, ByVal strExpRes As String)
Dim r As Word.Range
Dim DescFileExist As Boolean
Dim ExpResFileExist As Boolean
'Delete existent files
File.Delete("C:\Desc.html")
File.Delete("C:\ExpRes.html")
'Write variable in temporary file
fileIO.WriteFile(strDesc, "C:\Desc.html")
fileIO.WriteFile(strExpRes, "C:\ExpRes.html")
'Check if Files are written
DescFileExist = File.Exists("C:\Desc.html")
ExpResFileExist = File.Exists("C:\ExpRes.html")
'First cell, insert variable directly
r = oDoc.Tables(TableCount).Cell(StepNum, 1).Range
r.Text = strStep
'Second cell, insertFile
If DescFileExist = True Then
r = oDoc.Tables(TableCount).Cell(StepNum, 2).Range
r.InsertFile("C:\Desc.txt")
End If
'Third cell, insertFile
If ExpResFileExist = True Then
r = oDoc.Tables(TableCount).Cell(StepNum, 3).Range
r.InsertFile("C:\ExpRes.txt")
End If
End Function Hier ein HTMLStream:
<html><body>Preconditions</body></html>
Das Wort Preconditions sollte mit BOLD in die Zelle eingefügt werden...
Hat jemand ein Tipp?? Ich bin am verzweifeln, da ich keine andere Möglichkeit kenne um HTML Formatierung in Word zu verwenden...
Gruss und besten Dank!
Andi |