Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Word/Excel + VB .NET 
:(
    Опции темы
Exception
Дата 7.3.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



В этой статье я покажу, как из кода 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!
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0844 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.