Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Word/Excel + VB .NET


Автор: Exception 7.3.2006, 13:10
В этой статье я покажу, как из кода VB .NET работать с приложениями Word/Excel.

1) Работа с Excel
Для начала необходимо добавить ссылку на библиотеку Excel. Делается это через Project -> Add Reference... -> COM -> Microsoft Excel x.x Object Library. Затем создайте новую форму Main с двумя кнопками Read и Write и текстбоксом TextToWrite. Следующий код по нажатии кнопки Read выведет в окне сообщения содержимое ячейки A1 первого листа книги E:\ExcelFile.xls.
Код

Imports Microsoft.Office.Interop.Excel 'Библиотека Excel

Public Class Main 'Наша форма

    Private _xlApplication As New Application 'Приложение Excel
    Private _xlWorkBook As Workbook = _xlApplication.Workbooks.Open("E:\ExcelFile.xls") 'Открываем книгу
    Private _xlWorksheet As Worksheet = CType(_xlWorkBook.Worksheets(1), Microsoft.Office.Interop.Excel.Worksheet) 'Первый лист книги



    Private Sub Read_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Read.Click
        MessageBox.Show(CStr(_xlWorksheet.Range("A1").Value2), "Текст ячейки A1", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub


    Private Sub Write_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Write.Click
        _xlWorksheet.Range("A1").Value2 = TextToWrite.Text
    End Sub

    Private Sub Main_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        _xlApplication.Quit(True) 'Выходим, сохранив изменения
    End Sub

End Class

 
2) Работа с Word
Как и в случае работы с Excel, необходимо добавить ссылку на библиотеку. Делается это через Project -> Add Reference... -> COM -> Microsoft Word x.x Object Library. Затем создайте новую форму Main с кнопкой ShowText. Следующий код по нажатии кнопки ShowText выведет в окне сообщения содержимое первого параграфа документа E:\WordFile.doc.
Код

Imports Microsoft.Office.Interop.Word 'Библиотека Word

Public Class Main 'Наша форма

    Private _wdApplication As New Microsoft.Office.Interop.Word.Application 'Приложение Word
    Private _wdDocument As Document = _wdApplication.Documents.Open("E:\WordFile.doc") 'Документ Word

    Private Sub ShowText_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show(_wdDocument.Paragraphs(1).Range.Text, "Текст 1-го параграфа", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub

    Private Sub Main_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        _wdApplication.Quit(True) 'Выходим, сохранив изменения
    End Sub

End Class

Напоследок скажу, что работать с форматированием можно через свойство Range соответствующих объектов:
Код

_wdDocument.Paragraphs(1).Range.Font.Bold = 1
_xlWorksheet.Range("A1").Font.Bold = True

P.S. Не забывайте выходить из приложения! Всегда выполняйте метод Quit!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)