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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章