章鱼哥出品—VB.NET Office操作之Word(二)

来源:互联网 发布:快乐打字员软件 编辑:程序博客网 时间:2024/06/11 20:00

章鱼哥出品—VB.NET Office操作之Word(一)

本文是在上文给出的Class_Word1类的实例,实现了类中的各个功能,读者可借鉴参考。

实现窗体:

 




代码实现:代码直接复制到上文的窗体类中

'*********************************************************************

'作者:章鱼哥,QQ:3107073263 群:309816713    '如有疑问或好的建议请联系我,大家一起进步  '*********************************************************************Imports Microsoft.Office.InteropPublic Class Form1    Dim Array_Word As New ArrayList    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        RichTextBox1.Text = "章鱼哥出品VB.NET"    End Sub    '新建一个Word文档    Private Sub But_NewWord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_NewWord.Click        Dim My_word As New Class_Word1        My_word.NewDocument()        Array_Word.Add(My_word)    End Sub    '以模板新建     Private Sub But_ModuleNewWord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_ModuleNewWord.Click        Dim My_word As New Class_Word1        My_word.ModulNewDocument(TextBox1.Text)        Array_Word.Add(My_word)    End Sub    '打开一个文档    Private Sub But_OpenWord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_OpenWord.Click        Dim My_word As New Class_Word1        My_word.OpenWordDocument(TextBox1.Text, False)        Array_Word.Add(My_word)    End Sub         '关闭当前打开的所有文档    Private Sub But_CloseAllDocument_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_CloseAllDocument.Click        For Each Word_Class As Class_Word1 In Array_Word            Word_Class.CloseWordDocument()        Next        Array_Word.Clear()    End Sub    '保存文档    Private Sub But_Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_Save.Click        For Each Word_Class As Class_Word1 In Array_Word            Word_Class.Save()        Next    End Sub    '另存为     Private Sub But_SaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_SaveAs.Click             For Each Word_Class As Class_Word1 In Array_Word            Word_Class.SaveAs(TextBox1.Text)        Next    End Sub    '插入文本    Private Sub But_Insert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_Insert.Click        For Each Word_Class As Class_Word1 In Array_Word            Word_Class.InsertText(RichTextBox1.Text)        Next    End Sub    '插入表格    Private Sub But_InsertTabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_InsertTabel.Click        Dim tabel As DataTable = GetTabel(ListView1)        For Each Word_Class As Class_Word1 In Array_Word            Word_Class.InsertTabel(GetTabel(ListView1))        Next    End Sub    '从listview 中读取数据生成DataTable    Private Function GetTabel(ByVal lis As ListView) As DataTable        Dim Tabel As New DataTable()        '加表头        For i = 0 To lis.Columns.Count - 1            Tabel.Columns.Add(lis.Columns(i).Text.ToString)        Next        For i = 0 To lis.Items.Count - 1            Dim row As DataRow = Tabel.NewRow            For j = 0 To lis.Columns.Count - 1                row.Item(j) = lis.Items(i).SubItems(j).Text            Next            Tabel.Rows.Add(row)        Next        Return Tabel    End Function    '插入图片    Private Sub But_InsertPic_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_InsertPic.Click        For Each Word_Class As Class_Word1 In Array_Word            Word_Class.InsertPic(TextBox2.Text)        Next    End Sub    '读取文档的内容    Private Sub But_ReadText_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_ReadText.Click        For Each Word_Class As Class_Word1 In Array_Word            Word_Class.ReadText()            RichTextBox1.Paste()        Next    End Sub<pre name="code" class="vb">'*********************************************************************   '获取文档路径    Private Sub But_GetAdrress_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_GetAdrress.Click        Dim opendialog As New OpenFileDialog        If opendialog.ShowDialog = DialogResult.OK Then            TextBox1.Text = opendialog.FileName        End If    End Sub    '获取当前鼠标的位置     Private Sub But_GetCursor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_GetCursor.Click        For Each Word_Class As Class_Word1 In Array_Word            Dim Cursor As ArrayList = Word_Class.GetCursor()            If Cursor IsNot Nothing Then                For i = 0 To Cursor.Count - 1                    RichTextBox1.Text &= "  " & Cursor(i)                Next            End If        Next    End Sub    '将光标移动到指定页    Private Sub But_GoTo_Page_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_GoTo_Page.Click        For Each Word_Class As Class_Word1 In Array_Word            Word_Class.GoToPage(Tex_Page.Text)        Next    End Sub    '光标移动到指定行(绝对)    Private Sub But_GotoAbsoultRow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_GotoAbsoultRow.Click        For Each Word_Class As Class_Word1 In Array_Word            Word_Class.GoToAbsolutLine(Tex_Row_Absoult.Text)        Next    End Sub    '光标移动到指定行(相对)    Private Sub But_GotoOppsitRow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_GotoOppsitRow.Click        For Each Word_Class As Class_Word1 In Array_Word            Word_Class.GoToOppsiteLine(Tex_Row_Oppsit.Text)        Next    End Sub    '上下左右按钮,点击按钮一次移动一位    Private Sub PictureBox1_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp        'MsgBox("X:" & e.X & "Y:" & e.Y)        Dim x As Integer = e.X        Dim y As Integer = e.Y        'RichTextBox1.Text &= "|" & e.X & ":" & e.Y        For Each Word_Class As Class_Word1 In Array_Word            If x > 70 And x < 130 Then                If y > 20 And y < 45 Then                    Word_Class.MoveUp()                ElseIf y > 110 And y < 135 Then                    Word_Class.MoveDown()                End If            End If            If y > 45 And y < 105 Then                If x > 40 And x < 65 Then                    Word_Class.MoveLeft()                ElseIf x > 135 And y < 160 Then                    Word_Class.MoveRight()                End If            End If        Next    End SubEnd Class

0 0
原创粉丝点击