许多人都知道Word文档的重要性,而在VB.NET Word文档也是很重要的,由于Microsoft Office套件的普及,Word文档、电子表格文档、电子幻灯片等文档日渐常用。虽然在Office中各个程序的文档可以方便地转换,但是这种转换是以失去文档原本的格式为代价的。例如,在自动组卷系统中,存储在Access数据库中的试卷可以通过Access提供的导出功能产生Word文档,但产生的文档是无格式的,需花费大量时间重新排版方可符合用户在试卷格式上的要求。
VB.NET Word文档的创建
1、Visual Basic中创建Document对象
所有的工作都从Document对象开始,首先在Visual Basic中创建一个Document对象的实例,然后就可以对该实例进行各种可控制:
- Dim newDoc As Word.Document
- Set newnewDoc = new Word.Document
一旦创建了Document对象,就可以设置文档的缺省格式,通过设置Content子对象的字体、行间距等属性加以实现:
- With newDoc
- .Content.Font.Name = "宋体"
- .Content.Font.Size = 12
- .Content.Paragraphs.LineSpacing = 15.5
- End With
由此得到了一个空Word文档。
2、向Word文档中添加文本
接下来,向空文档中添加文本,这将使用Paragraphs集合对象来完成此项工作。InsertAfter方法将文本插入到Selection 或 Range 对象后;InsertBefore 方法将文本插入到Selection 或 Range 对象前。以下代码向文档结尾处添加一个段落并设置本段落格式:
- With newDoc
- .Content.InsertAfter "示例段落…"
- .Paragraphs(NewDoc.Paragraphs.count).Alignment = wdAlignParagraphCenter
- .Paragraphs(NewDoc.Paragraphs.count).Range.Font.Bold = True
- .Paragraphs(NewDoc.Paragraphs.count).Range.Font.Size = 28
- End With
可用 Paragraphs(index) 返回一个 Paragraph 对象,其中 index 为索引号;count属性值表示该文档主文字部分中的Paragraph对象数。NewDoc.Paragraphs.count恰好为当前正在添加的文本段落的索引号。
如果需要插入表格,可以使用Table 对象。Add 方法可以在指定范围内新增一表格。下例在活动文档的起始处添加一 3 x 4 的表格。
- Set myRange = ActiveDocument.Range(Start:=0, End:=0)
- ActiveDocument.Tables.Add Range:=myRange, NumRows:=3, NumColumns:=4
以可以使用制表字符得到表格。以下代码在文档尾部插入一个1x4 的表格。
- NewDoc.Content.InsertAfter "得分" & vbTab & " " & vbTab & "评卷人" & vbTab & " " & vbCr
当所有段落都添加到文档以后,可以使用 PageSetup对象进行页面设置,这需要通过设置PageSetup对象的各种属性来完成。
1)设置分栏和栏间距:
- newDoc.PageSetup.TextColumns.SetCount NumColumns:=2
- newDoc.PageSetup.TextColumns.Spacing = CentimetersToPoints(2)
2)设置页边距:
- With newDoc.PageSetup
- .TopMargin = CentimetersToPoints(4.5)
- .BottomMargin = CentimetersToPoints(1.5)
- .LeftMargin = CentimetersToPoints(0.8)
- .RightMargin = CentimetersToPoints(2)
- End With
3)设置纸张大小:
- With newDoc.PageSetup
- .PageHeight = CentimetersToPoints(28.1)
- .PageWidth = CentimetersToPoints(38.9)
- End With
其他的设置项目不再详述。
3、输出文档
对创建完毕的文档,我们可以选自保存为磁盘文件或直接打印输出:
- newDoc.SaveAs FileName:="Sample.doc"
- newDoc.PrintOut
该系统产生的试卷要求直接用于考核和选拔基层干部的考试中,首先由出题者输入试卷参数,即组卷规则,然后由软件自动组卷并输出Word格式的试卷。笔者应用上述方法开发的软件系统完全满足了用户需求。系统现已投入运行,极大地提高了工作效率,获得了用户的好评。
结束语
本文提出的在VB.NET Word文档创建的方法基于对象模型,实用性强,也可以用于其它支持ActiveX的开发平台中。