В этой статье я покажу, как из кода 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! |