本文关于段落及标题及内容方面的免费优秀学术论文范文,关于段落类论文范例,与基于OfficePIA自动生成Word文档相关在职研究生毕业论文范文,对不知道怎么写段落论文范文课题研究的大学硕士、本科毕业论文开题报告范文和文献综述及职称论文的作为参考文献资料下载。
摘 要 :随着办公量的日益增大,对办公软件的二次开发以适应需求的趋势变得必要.该文介绍了VB.NET环境下通过Office PIA对Word工程配筋计算报告书进行编程设计的方法,包括文档文字、图片和表格等的自动生成与排版设计.采用该方法可大幅度提高办公效率.
关 键 词 :Office PIA;VB.NET;Word;自动化
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)12-2899-05
计算机的程序开发应用广泛,对Office软件的二次开发实现办公的自动化大幅提高办公的效率和准确性.Office的编程接口都是通过COM组件公开的,任何访问Office编程接口的程序,实际上都必须要最终调用Office COM组件.基于Office PIA,.Net能够让开发人员非常方便的访问COM组件.该文使用VB.NET进行Word内容的排版、页眉页码的插入、目录生成和保存等,实现报告文档的自动化输出,并以某冷却塔工程配筋内容为测试数据为实例,将主程序的配筋计算过程与结果以计算书的形式体现.
1.Office PIA与VB.NET概述
Office PIA(Primary Interop Assembly),PIA的意思可以理解为“官方互操作程序集”,PIA按照Office的各个组件(Word、Excel、PowerPoint等),分成多个单独的程序集.比如Word对应的PIA程序集是Microsoft.Office.Interop.Word.dll(程序集里面的类都放在命名空间Microsoft.Office.Interop.Word中).
VB.NET是Visual Basic.NET的简称,是Visual Basic语言演变而来,是基于.NET框架的完全面向对象的编程语言.Visual Basic允许开发人员开发面向Web、 Windows、和移动设备的程序.使用VB. NET编写的程序都具有安全性和代码易于维护,可扩展性,代码重用技术的优点.使用VB.NET能够非常方便的通过PIA来访问Office.COM组件.
2.实现方法[1-3]
本文将从添加程序集引用、添加新文档、插入文本、图片和表格、设置标题样式、插入页眉页码、生成目录、保存文档等分别进行阐述.
1) 添加office组件的引用
在程序的解决方案资源管理器中添加对添加一个对Word COM组件的引用,操作为选择“引用”中的“添加”,选择COM组件中Word2010版本的“Microsoft Word 14.0 Object Library”,Word2007版本为“Microsoft Word 12.0 Object Library”.
然后,需要在程序中声明对命名空间“Microsoft.Office.Interop.Word”的引用,具体操作为:
Imports Microsoft.Office.Interop.Word
2) 新建Word文档
首先,使用下面的代码激活Word COM接口:
myWordApp等于 New Application
myWordApp.Visible 等于 True
然后使用Document.Add()方法添加新文档.Office编程接口中添加新文档的方法中不需要的参数可以使用.NET中自带的静态对象Type.Missing,如下面代码所示:
Dim missing 等于 System.Reflection.Missing.Value
myDoc 等于 myWordApp.Documents.Add(missing,missing,missing,missing)
3) 插入文字
为了便于设置文本格式,以Paragraph为对象设置每个段落文字的字体、字号和缩进等格式.
该文来源 http://www.sxsky.net/mulu/462338.html
Dim mypara(1) As Paragraph
mypara(1) 等于 myDoc.Paragraphs.Add()
mypara(1).Range.Text 等于 ("段落文本")
mypara(1).Range.Font.Size 等于 12
mypara(1).Range.ParagraphFormat.FirstLineIndent 等于 myWordApp.CentimetersToPoints(0.35)
同样这里可以设置行距(LineSpacingRule),大纲级别(OutlineLevel),对齐方式(Alignment)等的段落格式.
然而,对于一篇文档而言,可能用到的标题样式可能只有几种,测试表明,Word文档自动化生成过程中,使用设置标题样式要比对每个段落分别设置段落格式的速度要快得多.因此,建议使用标题样式方法来设置文本格式,如下述代码所示:
myDoc.Styles.Add("标题1", 1)
With myWordApp.ActiveDocument.Styles("标题1")
.ParagraphFormat.OutlineLevel 等于 WdOutlineLeve
l.wdOutlineLevel1
.Font.Size 等于 20
.Font.Bold 等于 True
等
End With
mypara(1).Range.Style 等于 myDoc.Styles("标题1")
4) 插入图片 Dim Picshaps(1) As InlineShape
Picshaps(1)等于myWordApp.Selection.InlineShapes.AddPicture("图片路径+图片名")
Picshaps(1).Height 等于 myWordApp.CentimetersToPoin
ts("图片高度值")
Picshaps(1).Width 等于 myWordApp.CentimetersToPoin
s("图片宽度值")
插入表格(指定Rows、Cols行数列数):
Dim mytable(1) As Table
Dim NumRows, NumColumns As Integer
NumRows 等于 Rows : NumColumns 等于 Cols
mytable 等于 myDoc.Tables.Add(myWordApp.Selection.
Range(), NumRows, NumColumns)
mytable(1).Cell(r, c).Range.Text 等于 "单元格内容"
5) 插入页眉
With myWordApp.ActiveWindow
.ActivePane.View.SeekView等于Microsoft.Office.Interop.Word.WdSeekView.wdSeekPrimaryHeader
.ActivePane.Selection.TypeText("页眉名")
End With
6) 插入页码
myDoc .ActiveWindow.View.SeekView等于Microsoft.Office.Interop.Word.WdSeekView.wdSeekPrimaryFooter‘光标移到页脚处
With MyWordApp.Selection.HeaderFooter.PageNumb
ers
.NumberStyle等于WdPageNumberStyle.wdPageNumberStyleArabic
.StartingNumber 等于 1
End With
myWordApp.ActiveDocument.Sections(1).Footers(WdHeaderFooterIndex.wdHeaderFooterPrimary).PageNumbers.Add(PageNumberAlignment:等于WdPageNumberAlignment.wdAlignPageNumberCenter,FirstPage:等于True)
7) 在文档第一页生成目录
With myDoc
Dim myRange 等于 myDoc .Range(Start:等于0, End:等于0)
.TablesOfContents.Add(Range:等于myRange,RightAlignPageNumbers:等于True,UseHeadingStyles:等于True,
UpperHeadingLevel:等于1,LowerHeadingLevel:等于3,IncludePageNumbers:等于True,AddedStyles:等于"",UseHyperlinks:等于True,HidePageNumbersInWeb:等于True,UseOutlineLevels:等于True)
有关论文范文主题研究: | 关于段落的论文例文 | 大学生适用: | 电大论文、自考毕业论文 |
---|---|---|---|
相关参考文献下载数量: | 87 | 写作解决问题: | 写作参考 |
毕业论文开题报告: | 论文提纲、论文目录 | 职称论文适用: | 核心期刊、高级职称 |
所属大学生专业类别: | 写作参考 | 论文题目推荐度: | 最新题目 |
.TablesOfContents(1).TabLeader 等于 WdTabLeader.w
dTabLeaderDots
.TablesOfContents.Format 等于Microsoft.Office.Intero
p.Word.WdIndexType.wdIndexIndent
End With
8) 保存文档
这里我们只需要使用Document.Save()方法的第一个参数,即保存路径)对于不需要的参数,可以使用.NET中自带的静态对象:Type.Missing即可.
Dim missing 等于 System.Reflection.Missing.Value
myDoc .SaveAs()第一个参数为路径+文件名,后面的15个参数均为missing.
9) 退出Word: myWordApp.Quit().
3.程序测试
3.1 文本内容
自动化输出文档的内容分为各段落文本内容(计算书的叙述性文字,公式等)及与其对应的标题样式名称(如表1所示).
3.2自动化过程
1)新建标题样式
创建表2中的标题样式.下面以“标题1”为例展示新建标题样式的方法:
myDoc .Styles.Add(Name:等于"标题1",Type:等于WdStyleT
ype.wdStyleTypeParagraph)
With myWordApp.ActiveDocument.Styles(“标题1”)
.ParagraphFormat.OutlineLevel 等于WdOutlineLevel.
wdOutlineLevel1
.Font.Color 等于 WdColor.wdColorBlack
.Font.Size 等于 14 .Font.Name 等于"宋体"
.Font.Bold 等于 True
.ParagraphFormat.Alignment 等于WdParagraphAlign
Ment.wdAlignParagraphRight
等
End With
3.3调用测试数据出报告[4]
各段落序号用 i 表示,其内容保存在Data1(i, 1)中,纯文本段落代码如下:
myDoc .ActiveWindow.View.SeekView 等于 Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument‘确保光标处于主文档
mypara(i) 等于 myDoc .Content.Paragraphs.Add()
mypara(i).Range.Text 等于 Trim(Data1(i, 1))
mypara(i).Range.InsertParagraphAfter()
如果某些段落文字中包含有公式图片,处理方法如下:
用空格替换 “{/图片名/}”中的特殊字符“{/”和“/}”,使用Split函数将一个段落内容分为几段得到一维数组NewData1(),按顺序输出到Word中.实现一个包含公式符号图片的段落内容插入的代码如下:
Dim Index as Integer
For i 等于 0 To UBound(NewData1)
If NewData1(i).Contains(".wmf") Then
Index等于 Index+1
Picshaps (Index) 等于 oWordApplic.Selection.InlineS
hapes.AddPicture("路径+图片名名")
Else oWordApplic.Selection.TypeText(NewData1(i))
End If
Next
为保证一个段落里的文字和公式图片在同一行保持整齐,使用“居中”的文本对其方式:
mypara(i).Range.ParagraphFormat.BaseLineAlignment 等于 WdBaselineAlignment.wdBaselineAlignCenter
然后使用Select语句将各段对应标题(保存在Data1(i, 0)中)赋给相应段落:
Select Case Data1(i, 0)
Case "标题1"
mypara(i).Range.Style 等于myDoc .Style("标题1")
Case "正文文本"
mypara(i).Range.Style 等于myDoc .Style("正文")
等
End Select
然后按照2 实现方法中的方法进行插入页眉页码、插入目录和保存文档等工作.
3.4图片与表格的处理方法
段落内容中可能包含表示公式的图片,使用Mathtype把需要的公式保存为wmf矢量格式图片,来代替在Word中使用Mathtype输入公式的步骤,在测试数据文本中,段落内容中相应位置的图片使用特殊符号{/图片名&