Word操作自定义类


点击下载引用库

'开始别忘了导入这两个东东(这两东东下载地址在头顶)

Imports Microsoft.Office.Core
Imports Word


Public Class WordOpLib

    Private oWordApplic As Word.Application
    
Private oDocument As Word.Document
    
Private oRange As Word.Range
    
Private oSelection As Word.Selection
    
Public Sub New()
        
'激活com  word接口
        oWordApplic = New Word.Application
        oWordApplic.Visible 
= True
    
End Sub

    
'设置选定文本
    Public Sub SetRange(ByVal para As Integer)
        oRange 
= oDocument.Paragraphs(para).Range
        oRange.Select()
    
End Sub

    
Public Sub SetRange(ByVal para As IntegerByVal sent As Integer)
        oRange 
= oDocument.Paragraphs(para).Range.Sentences(sent)
        oRange.Select()
    
End Sub

    
Public Sub SetRange(ByVal startpoint As IntegerByVal endpoint As IntegerByVal flag As Boolean)
        
If flag = True Then
            oRange 
= oDocument.Range(startpoint, endpoint)
            oRange.Select()
        
Else

        
End If
    
End Sub


    
'生成空的新文档
    Public Sub NewDocument()
        
Dim missing = System.Reflection.Missing.Value
        
Dim isVisible As Boolean = True
        oDocument 
= oWordApplic.Documents.Add(missing, missing, missing, missing)
        oDocument.Activate()
    
End Sub

    
'使用模板生成新文档
    Public Sub NewDocWithModel(ByVal FileName As String)
        
Dim missing = System.Reflection.Missing.Value
        
Dim isVisible As Boolean = True
        
Dim strName As String
        strName 
= FileName

        oDocument 
= oWordApplic.Documents.Add(strName, missing, missing, isVisible)
        oDocument.Activate()
    
End Sub

    
'打开已有文档
    Public Sub OpenFile(ByVal FileName As String)
        
Dim strName As String
        
Dim isReadOnly As Boolean
        
Dim isVisible As Boolean
        
Dim missing = System.Reflection.Missing.Value

        strName 
= FileName
        isReadOnly 
= False
        isVisible 
= True

        oDocument 
= oWordApplic.Documents.Open(strName, missing, isReadOnly, missing, missing, missing, missing, missing, missing, missing, missing, isVisible, missing, missing, missing, missing)
        oDocument.Activate()

    
End Sub

    
Public Sub OpenFile(ByVal FileName As StringByVal isReadOnly As Boolean)
        
Dim strName As String
        
Dim isVisible As Boolean
        
Dim missing = System.Reflection.Missing.Value

        strName 
= FileName
        isVisible 
= True

        oDocument 
= oWordApplic.Documents.Open(strName, missing, isReadOnly, missing, missing, missing, missing, missing, missing, missing, missing, isVisible, missing, missing, missing, missing)
        oDocument.Activate()
    
End Sub

    
'退出Word
    Public Sub Quit()
        
Dim missing = System.Reflection.Missing.Value
        oWordApplic.Quit()
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oWordApplic)
        oWordApplic 
= Nothing
    
End Sub

    
'关闭所有打开的文档
    Public Sub CloseAllDocuments()
        oWordApplic.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges)
    
End Sub

    
'关闭当前的文档
    Public Sub CloseCurrentDocument()
        oDocument.Close(Word.WdSaveOptions.wdDoNotSaveChanges)
    
End Sub

    
'保存当前文档
    Public Sub Save()
        
Try
            oDocument.Save()
        
Catch
            
MsgBox(Err.Description)
        
End Try
    
End Sub

    
'另存为文档
    Public Sub SaveAs(ByVal FileName As String)
        
Dim strName As String
        
Dim missing = System.Reflection.Missing.Value

        strName 
= FileName

        oDocument.SaveAs(strName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)
    
End Sub

    
'保存为Html文件
    Public Sub SaveAsHtml(ByVal FileName As String)
        
Dim missing = System.Reflection.Missing.Value
        
Dim strName As String

        strName 
= FileName
        
Dim format = CInt(Word.WdSaveFormat.wdFormatHTML)

        oDocument.SaveAs(strName, 
format, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)
    
End Sub

    
'插入文本
    Public Sub InsertText(ByVal text As String)
        oWordApplic.Selection.TypeText(text)
    
End Sub

    
'插入一个空行
    Public Sub InsertLineBreak()
        oWordApplic.Selection.TypeParagraph()
    
End Sub

    
'插入指定行数的空行
    Public Sub InsertLineBreak(ByVal lines As Integer)
        
Dim i As Integer
        
For i = 1 To lines
            oWordApplic.Selection.TypeParagraph()
        
Next
    
End Sub

    
'插入表格
    Public Sub InsertTable(ByRef table As DataTable)
        
Dim oTable As Word.Table
        
Dim rowIndex, colIndex, NumRows, NumColumns As Integer
        rowIndex 
= 1
        colIndex 
= 0

        NumRows 
= table.Rows.Count + 1
        NumColumns 
= table.Columns.Count
        oTable 
= oDocument.Tables.Add(oWordApplic.Selection.Range(), NumRows, NumColumns)


        
'初始化列
        Dim Row As DataRow
        
Dim Col As DataColumn
        
For Each Col In table.Columns
            colIndex 
= colIndex + 1
            oTable.Cell(
1, colIndex).Range.InsertAfter(Col.ColumnName)
        
Next

        
'将行添入表格
        For Each Row In table.Rows
            rowIndex 
= rowIndex + 1
            colIndex 
= 0
            
For Each Col In table.Columns
                colIndex 
= colIndex + 1
                oTable.Cell(rowIndex, colIndex).Range.InsertAfter(Row(Col.ColumnName))
            
Next
        
Next
        oTable.AllowAutoFit 
= True
        oTable.ApplyStyleFirstColumn 
= True
        oTable.ApplyStyleHeadingRows 
= True
    
End Sub

    
'设置对齐
    Public Sub SetAlignment(ByVal strType As String)
        
Select Case strType
            
Case "center"
                oWordApplic.Selection.ParagraphFormat.Alignment 
= Word.WdParagraphAlignment.wdAlignParagraphCenter
            
Case "left"
                oWordApplic.Selection.ParagraphFormat.Alignment 
= Word.WdParagraphAlignment.wdAlignParagraphLeft
            
Case "right"
                oWordApplic.Selection.ParagraphFormat.Alignment 
= Word.WdParagraphAlignment.wdAlignParagraphRight
            
Case "justify"
                oWordApplic.Selection.ParagraphFormat.Alignment 
= Word.WdParagraphAlignment.wdAlignParagraphJustify
        
End Select
    
End Sub

    
'设置字体
    Public Sub SetStyle(ByVal strFont As String)
        
Select Case strFont
            
Case "bold"
                oWordApplic.Selection.Font.Bold 
= 1
            
Case "italic"
                oWordApplic.Selection.Font.Italic 
= 1
            
Case "underlined"
                oWordApplic.Selection.Font.Subscript 
= 1
        
End Select
    
End Sub

    
'取消字体风格
    Public Sub DissableStyle()
        oWordApplic.Selection.Font.Bold 
= 0
        oWordApplic.Selection.Font.Italic 
= 0
        oWordApplic.Selection.Font.Subscript 
= 0
    
End Sub

    
'设置字体字号
    Public Sub SetFontSize(ByVal nSize As Integer)
        oWordApplic.Selection.Font.Size 
= nSize
    
End Sub

    
'跳过本页
    Public Sub InsertPageBreak()
        
Dim pBreak As Integer
        pBreak 
= CInt(Word.WdBreakType.wdPageBreak)
        oWordApplic.Selection.InsertBreak(pBreak)
    
End Sub

    
'转到书签
    Public Sub GotoBookMark(ByVal strBookMark As String)
        
Dim missing = System.Reflection.Missing.Value
        
Dim BookMark = CInt(Word.WdGoToItem.wdGoToBookmark)
        oWordApplic.Selection.GoTo(BookMark, missing, missing, strBookMark)
    
End Sub

    
'判断书签是否存在
    Public Function BookMarkExist(ByVal strBookMark As StringAs Boolean
        
Dim Exist As Boolean
        Exist 
= oDocument.Bookmarks.Exists(strBookMark)
        
Return Exist
    
End Function

    
'转到文档结尾
    Public Sub GotoTheEnd()
        
Dim missing = System.Reflection.Missing.Value
        
Dim unit = Word.WdUnits.wdStory
        oWordApplic.Selection.EndKey(unit, missing)
    
End Sub

    
'转到文档开头
    Public Sub GotoTheBegining()
        
Dim missing = System.Reflection.Missing.Value
        
Dim unit = Word.WdUnits.wdStory
        oWordApplic.Selection.HomeKey(unit, missing)
    
End Sub

    
'转到表格
    Public Sub GotoTheTable(ByVal ntable As Integer)
        
'Dim missing = System.Reflection.Missing.Value
        'Dim what = Word.WdGoToItem.wdGoToTable
        'Dim which = Word.WdGoToDirection.wdGoToFirst
        'Dim count = ntable

        
'oWordApplic.Selection.GoTo(what, which, count, missing)
        'oWordApplic.Selection.ClearFormatting()

        
'oWordApplic.Selection.Text = ""
        oRange = oDocument.Tables(ntable).Cell(11).Range
        oRange.Select()
    
End Sub

    
'转到表格的某个单元格
    Public Sub GotoTableCell(ByVal ntable As IntegerByVal nRow As IntegerByVal nColumn As Integer)
        oRange 
= oDocument.Tables(ntable).Cell(nRow, nColumn).Range
        oRange.Select()
    
End Sub

    
'表格中转到右面的单元格
    Public Sub GotoRightCell()
        
Dim missing = System.Reflection.Missing.Value
        
Dim direction = Word.WdUnits.wdCell
        oWordApplic.Selection.MoveRight(direction, missing, missing)
    
End Sub

    
'表格中转到左面的单元格
    Public Sub GotoLeftCell()
        
Dim missing = System.Reflection.Missing.Value
        
Dim direction = Word.WdUnits.wdCell
        oWordApplic.Selection.MoveLeft(direction, missing, missing)
    
End Sub

    
'表格中转到下面的单元格
    Public Sub GotoDownCell()
        
Dim missing = System.Reflection.Missing.Value
        
Dim direction = Word.WdUnits.wdCell
        oWordApplic.Selection.MoveDown(direction, missing, missing)
    
End Sub

    
'表格中转到上面的单元格
    Public Sub GotoUpCell()
        
Dim missing = System.Reflection.Missing.Value
        
Dim direction = Word.WdUnits.wdCell
        oWordApplic.Selection.MoveUp(direction, missing, missing)
    
End Sub

    
'插入图片
    Public Sub InsertPic(ByVal FileName As String)
        
Dim missing = System.Reflection.Missing.Value
        oWordApplic.Selection.InlineShapes.AddPicture(FileName, 
FalseTrue, missing)
    
End Sub


End Class

    Private oWordApplic As Word.Application
    
Private oDocument As Word.Document
    
Private oRange As Word.Range
    
Private oSelection As Word.Selection
    
Public Sub New()
        
'激活com  word接口
        oWordApplic = New Word.Application
        oWordApplic.Visible 
= True
    
End Sub

    
'设置选定文本
    Public Sub SetRange(ByVal para As Integer)
        oRange 
= oDocument.Paragraphs(para).Range
        oRange.Select()
    
End Sub

    
Public Sub SetRange(ByVal para As IntegerByVal sent As Integer)
        oRange 
= oDocument.Paragraphs(para).Range.Sentences(sent)
        oRange.Select()
    
End Sub

    
Public Sub SetRange(ByVal startpoint As IntegerByVal endpoint As IntegerByVal flag As Boolean)
        
If flag = True Then
            oRange 
= oDocument.Range(startpoint, endpoint)
            oRange.Select()
        
Else

        
End If
    
End Sub


    
'生成空的新文档
    Public Sub NewDocument()
        
Dim missing = System.Reflection.Missing.Value
        
Dim isVisible As Boolean = True
        oDocument 
= oWordApplic.Documents.Add(missing, missing, missing, missing)
        oDocument.Activate()
    
End Sub

    
'使用模板生成新文档
    Public Sub NewDocWithModel(ByVal FileName As String)
        
Dim missing = System.Reflection.Missing.Value
        
Dim isVisible As Boolean = True
        
Dim strName As String
        strName 
= FileName

        oDocument 
= oWordApplic.Documents.Add(strName, missing, missing, isVisible)
        oDocument.Activate()
    
End Sub

    
'打开已有文档
    Public Sub OpenFile(ByVal FileName As String)
        
Dim strName As String
        
Dim isReadOnly As Boolean
        
Dim isVisible As Boolean
        
Dim missing = System.Reflection.Missing.Value

        strName 
= FileName
        isReadOnly 
= False
        isVisible 
= True

        oDocument 
= oWordApplic.Documents.Open(strName, missing, isReadOnly, missing, missing, missing, missing, missing, missing, missing, missing, isVisible, missing, missing, missing, missing)
        oDocument.Activate()

    
End Sub

    
Public Sub OpenFile(ByVal FileName As StringByVal isReadOnly As Boolean)
        
Dim strName As String
        
Dim isVisible As Boolean
        
Dim missing = System.Reflection.Missing.Value

        strName 
= FileName
        isVisible 
= True

        oDocument 
= oWordApplic.Documents.Open(strName, missing, isReadOnly, missing, missing, missing, missing, missing, missing, missing, missing, isVisible, missing, missing, missing, missing)
        oDocument.Activate()
    
End Sub

    
'退出Word
    Public Sub Quit()
        
Dim missing = System.Reflection.Missing.Value
        oWordApplic.Quit()
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oWordApplic)
        oWordApplic 
= Nothing
    
End Sub

    
'关闭所有打开的文档
    Public Sub CloseAllDocuments()
        oWordApplic.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges)
    
End Sub

    
'关闭当前的文档
    Public Sub CloseCurrentDocument()
        oDocument.Close(Word.WdSaveOptions.wdDoNotSaveChanges)
    
End Sub

    
'保存当前文档
    Public Sub Save()
        
Try
            oDocument.Save()
        
Catch
            
MsgBox(Err.Description)
        
End Try
    
End Sub

    
'另存为文档
    Public Sub SaveAs(ByVal FileName As String)
        
Dim strName As String
        
Dim missing = System.Reflection.Missing.Value

        strName 
= FileName

        oDocument.SaveAs(strName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)
    
End Sub

    
'保存为Html文件
    Public Sub SaveAsHtml(ByVal FileName As String)
        
Dim missing = System.Reflection.Missing.Value
        
Dim strName As String

        strName 
= FileName
        
Dim format = CInt(Word.WdSaveFormat.wdFormatHTML)

        oDocument.SaveAs(strName, 
format, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)
    
End Sub

    
'插入文本
    Public Sub InsertText(ByVal text As String)
        oWordApplic.Selection.TypeText(text)
    
End Sub

    
'插入一个空行
    Public Sub InsertLineBreak()
        oWordApplic.Selection.TypeParagraph()
    
End Sub

    
'插入指定行数的空行
    Public Sub InsertLineBreak(ByVal lines As Integer)
        
Dim i As Integer
        
For i = 1 To lines
            oWordApplic.Selection.TypeParagraph()
        
Next
    
End Sub

    
'插入表格
    Public Sub InsertTable(ByRef table As DataTable)
        
Dim oTable As Word.Table
        
Dim rowIndex, colIndex, NumRows, NumColumns As Integer
        rowIndex 
= 1
        colIndex 
= 0

        NumRows 
= table.Rows.Count + 1
        NumColumns 
= table.Columns.Count
        oTable 
= oDocument.Tables.Add(oWordApplic.Selection.Range(), NumRows, NumColumns)


        
'初始化列
        Dim Row As DataRow
        
Dim Col As DataColumn
        
For Each Col In table.Columns
            colIndex 
= colIndex + 1
            oTable.Cell(
1, colIndex).Range.InsertAfter(Col.ColumnName)
        
Next

        
'将行添入表格
        For Each Row In table.Rows
            rowIndex 
= rowIndex + 1
            colIndex 
= 0
            
For Each Col In table.Columns
                colIndex 
= colIndex + 1
                oTable.Cell(rowIndex, colIndex).Range.InsertAfter(Row(Col.ColumnName))
            
Next
        
Next
        oTable.AllowAutoFit 
= True
        oTable.ApplyStyleFirstColumn 
= True
        oTable.ApplyStyleHeadingRows 
= True
    
End Sub

    
'设置对齐
    Public Sub SetAlignment(ByVal strType As String)
        
Select Case strType
            
Case "center"
                oWordApplic.Selection.ParagraphFormat.Alignment 
= Word.WdParagraphAlignment.wdAlignParagraphCenter
            
Case "left"
                oWordApplic.Selection.ParagraphFormat.Alignment 
= Word.WdParagraphAlignment.wdAlignParagraphLeft
            
Case "right"
                oWordApplic.Selection.ParagraphFormat.Alignment 
= Word.WdParagraphAlignment.wdAlignParagraphRight
            
Case "justify"
                oWordApplic.Selection.ParagraphFormat.Alignment 
= Word.WdParagraphAlignment.wdAlignParagraphJustify
        
End Select
    
End Sub

    
'设置字体
    Public Sub SetStyle(ByVal strFont As String)
        
Select Case strFont
            
Case "bold"
                oWordApplic.Selection.Font.Bold 
= 1
            
Case "italic"
                oWordApplic.Selection.Font.Italic 
= 1
            
Case "underlined"
                oWordApplic.Selection.Font.Subscript 
= 1
        
End Select
    
End Sub

    
'取消字体风格
    Public Sub DissableStyle()
        oWordApplic.Selection.Font.Bold 
= 0
        oWordApplic.Selection.Font.Italic 
= 0
        oWordApplic.Selection.Font.Subscript 
= 0
    
End Sub

    
'设置字体字号
    Public Sub SetFontSize(ByVal nSize As Integer)
        oWordApplic.Selection.Font.Size 
= nSize
    
End Sub

    
'跳过本页
    Public Sub InsertPageBreak()
        
Dim pBreak As Integer
        pBreak 
= CInt(Word.WdBreakType.wdPageBreak)
        oWordApplic.Selection.InsertBreak(pBreak)
    
End Sub

    
'转到书签
    Public Sub GotoBookMark(ByVal strBookMark As String)
        
Dim missing = System.Reflection.Missing.Value
        
Dim BookMark = CInt(Word.WdGoToItem.wdGoToBookmark)
        oWordApplic.Selection.GoTo(BookMark, missing, missing, strBookMark)
    
End Sub

    
'判断书签是否存在
    Public Function BookMarkExist(ByVal strBookMark As StringAs Boolean
        
Dim Exist As Boolean
        Exist 
= oDocument.Bookmarks.Exists(strBookMark)
        
Return Exist
    
End Function

    
'转到文档结尾
    Public Sub GotoTheEnd()
        
Dim missing = System.Reflection.Missing.Value
        
Dim unit = Word.WdUnits.wdStory
        oWordApplic.Selection.EndKey(unit, missing)
    
End Sub

    
'转到文档开头
    Public Sub GotoTheBegining()
        
Dim missing = System.Reflection.Missing.Value
        
Dim unit = Word.WdUnits.wdStory
        oWordApplic.Selection.HomeKey(unit, missing)
    
End Sub

    
'转到表格
    Public Sub GotoTheTable(ByVal ntable As Integer)
        
'Dim missing = System.Reflection.Missing.Value
        'Dim what = Word.WdGoToItem.wdGoToTable
        'Dim which = Word.WdGoToDirection.wdGoToFirst
        'Dim count = ntable

        
'oWordApplic.Selection.GoTo(what, which, count, missing)
        'oWordApplic.Selection.ClearFormatting()

        
'oWordApplic.Selection.Text = ""
        oRange = oDocument.Tables(ntable).Cell(11).Range
        oRange.Select()
    
End Sub

    
'转到表格的某个单元格
    Public Sub GotoTableCell(ByVal ntable As IntegerByVal nRow As IntegerByVal nColumn As Integer)
        oRange 
= oDocument.Tables(ntable).Cell(nRow, nColumn).Range
        oRange.Select()
    
End Sub

    
'表格中转到右面的单元格
    Public Sub GotoRightCell()
        
Dim missing = System.Reflection.Missing.Value
        
Dim direction = Word.WdUnits.wdCell
        oWordApplic.Selection.MoveRight(direction, missing, missing)
    
End Sub

    
'表格中转到左面的单元格
    Public Sub GotoLeftCell()
        
Dim missing = System.Reflection.Missing.Value
        
Dim direction = Word.WdUnits.wdCell
        oWordApplic.Selection.MoveLeft(direction, missing, missing)
    
End Sub

    
'表格中转到下面的单元格
    Public Sub GotoDownCell()
        
Dim missing = System.Reflection.Missing.Value
        
Dim direction = Word.WdUnits.wdCell
        oWordApplic.Selection.MoveDown(direction, missing, missing)
    
End Sub

    
'表格中转到上面的单元格
    Public Sub GotoUpCell()
        
Dim missing = System.Reflection.Missing.Value
        
Dim direction = Word.WdUnits.wdCell
        oWordApplic.Selection.MoveUp(direction, missing, missing)
    
End Sub

    
'插入图片
    Public Sub InsertPic(ByVal FileName As String)
        
Dim missing = System.Reflection.Missing.Value
        oWordApplic.Selection.InlineShapes.AddPicture(FileName, 
FalseTrue, missing)
    
End Sub


End Class
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章