上回借机房收费系统讲到了用vb.net导出Excel,这次在做项目的过程中,我们不仅学会了将数据打印到VS自带的报表中,还了解了如何用vb.net操作word,将窗体中的内容反映到word中。所以今天要向大家分享一下如何用VB.net 导出word,生成word报表。
第一步,添加引用:
安装不一样的office版本或者wps,添加引用时会有区别。
第二步:引用声明
Imports Microsoft.Office.Interop
第三步:详细代码:
声明:
Dim oword As Word.Application Dim odoc As Word.Document Dim otable As Word.Table Dim opara1 As Word.Paragraph Dim opara2 As Word.Paragraph Dim opara3 As Word.Paragraph
Paragraph 对象代表所选内容、范围或文档中的一个段落。Paragraph 对象是 Paragraphs 集合的一个成员。Paragraphs 集合包含所选内容、范围或文档中的所有段落。
在这里我为了完成我的表,用来三个paragraph对象,如上:opara1,opara2,opara3.
编辑表内信息
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click oword = CreateObject("Word.application") oword.Visible = True odoc = oword.Documents.Add odoc.PageSetup.Orientation = Word.WdOrientation.wdOrientLandscape '横向显示,试用于横向打印 opara1 = odoc.Content.Paragraphs.Add opara1.Range.Text = "人才资源状况调查统计表" opara1.Range.Font.Bold = True opara1.Format.SpaceAfter = 25 '在段落之后24 Pt 空格 opara1.Range.Font.Size = 18 '字号为18 opara1.Format.SpaceBefore = 2 '段间距为2 opara1.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter '居中显示 opara1.Range.InsertParagraphAfter() '段后显示 otable = odoc.Tables.Add(odoc.Bookmarks.Item("\endofdoc").Range, 7, 3) '表格为7行3列 otable.Range.ParagraphFormat.SpaceAfter = 6 otable.Cell(1, 1).Range.Text = "填报单位:" otable.Cell(2, 1).Range.Text = "负责人:" otable.Cell(3, 1).Range.Text = "填表人:" otable.Cell(4, 1).Range.Text = "报出时间:" otable.Cell(5, 1).Range.Text = "联系电话:" otable.Cell(1, 2).Range.Text = TextBox1.Text.ToString otable.Cell(1, 2).Range.Underline = Word.WdUnderline.wdUnderlineWords '添加下划线 otable.Cell(2, 2).Range.Text = TextBox2.Text.ToString otable.Cell(2, 2).Range.Underline = Word.WdUnderline.wdUnderlineWords otable.Cell(3, 2).Range.Text = TextBox3.Text.ToString otable.Cell(3, 2).Range.Underline = Word.WdUnderline.wdUnderlineWords otable.Cell(4, 2).Range.Text = Now.Year & "年" & Now.Month & "月" & Now.Day & "日" otable.Cell(4, 2).Range.Underline = Word.WdUnderline.wdUnderlineWords otable.Cell(5, 2).Range.Text = TextBox4.Text otable.Cell(5, 2).Range.Underline = Word.WdUnderline.wdUnderlineWords otable.Cell(6, 2).Range.Text = "部门组织部" otable.Cell(7, 2).Width = 250 otable.Cell(7, 2).Range.Text = "人力资源管理企业" otable.Cell(1, 3).Range.Text = "(盖章)" otable.Cell(2, 3).Range.Text = "(签字)" otable.Cell(3, 3).Range.Text = "(签字)" otable.Cell(6, 3).Range.Text = "(制)" otable.Cell(7, 3).Range.Text = Now.Year & "年" & Now.Month & "月" End Sub
第四步:打印结果
用vb.net实现了居中显示、下划线、年月日显示,word横向显示的设置,感觉只要我们想的到,就没有实现不了的。
总结:
这次尝试用vb.net操作word,感觉自己查询信息的能力越来越强了,就像师傅说的,检索条件越详细,结果也越精简,会过滤到很多有用的信息,所以,如果不是很有针对性的查询的话,关键字还是越少越好。