我在Word Document-2007中遇到了一个奇怪的问题。我已经创建了一个Word文档模板,并为该模板创建XML节点以打印重复数据,为此,我使用开发人员选项卡保留了Word文档上的所有XML节点,它运行良好。因为该模板创建了6个以上的页面,所以我的客户需要显示页眉和页脚部分。我将XML节点放在Header部分,但它不会打印该节点值。如果我把静态文本放在Header部分,它应该动态显示,但它没有。为什么会这样?。
编辑
1 . I have create custom xmlnodes like below
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="WorkOrders" elementFormDefault="qualified"
xmlns="http://tempuri.org/XSDSchema1.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Cfield1" type="xs:string" />
<xs:element name="Cfield2" type="xs:string" />
</xs:schema>
当我保存文件时,它会保存Customnode.xsd
2.然后,我使用Developr标记-->添加架构-->选择XSD文件,然后将节点放在模板上,将这些自定义节点添加到Word文档模板中。
现在,我已经使用vb.net绑定了数据,如下所示。
Dim Traveler As Object Dim Travelerdoc As Object Dim myxmlnode As Object Traveler = CreateObject("Word.Application") Travelerdoc = Traveler.Documents.Add("Documentpath/WordDocument.doc") For Each myxmlnode In Travelerdoc.XMLNodes If myxmlnode.BaseName = "Cfield1" Then myxmlnode.Range.Text ="Hello" If myxmlnode.BaseName = "Cfield2" Then myxmlnode.Range.Text = "Word Document" if(totalrecords<=5) myxmlnode.Range.Select() Travelerdoc.ActiveWindow.Selection.InsertRowsBelow() End If Next
感谢大家回复我。。不管怎样,我终于解决了我的问题。。。谢谢
在这里我找到了解决方案。。。
Dim rng As Microsoft.Office.Interop.Word.Range
Dim doc As Microsoft.Office.Interop.Word.Document
Dim headertext As String
For Each wordSection As Microsoft.Office.Interop.Word.Section In Travelerdoc.Sections
rng = wordSection.Headers(Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Range
rng.Font.Size = 14
rng.InsertAfter(vbTab & vbTab & "WO : " & ds.Tables(0).Rows(0).Item("wo").ToString())
Next