VB2008 - Как прочитать Excel файл?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

immark
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 11.03.2009 (Ср) 16:28

VB2008 - Как прочитать Excel файл?

Сообщение immark » 24.09.2010 (Пт) 19:42

В VB6 не было проблемы прочесть Excel файл, а здесь бьюсь неделю - и никак!
Нормально открывается файл и закрывается, но как определенную ячейку из определенного листа(шита) - все, ошибка! Имена шита - "Sheet1"и ячейки - "A1" - приведены для примера в коде ниже.
Пересмотрел разные хелпы и статьи - не пойму, где ошибка.
Наверняка, какую-то мелочь не учел в этом .НЕТ бэсике!
Кто знает - помогите!
Спасибо за внимание!

Код: Выделить всё
Private Sub EX_1()
        Dim xlsApp As New Microsoft.Office.Interop.Excel.Application
        Dim xlsBook As Microsoft.Office.Interop.Excel.Workbook
        Dim xlsSheet As Microsoft.Office.Interop.Excel.Worksheet
        Dim fnam As String        Dim CellVal As String
        xlsApp.Visible = True
        fnam = "D:\PROJEKTS\VB - NET\EXPER\EXPER_EXCEL.xls"
        xlsBook = xlsApp.Workbooks.Open(fnam) 'открываем существующий Excel файл

        xlsSheet = xlsBook.ActiveSheet("Sheet1") '???

        CellVal = xlsSheet.Cells("A1").ToString '???

        xlsBook.Close()
        xlsApp.Workbooks.Close()
        xlsApp.Quit()
    End Sub

[Viper] :: Я тебя предупреждал за необходимость использования тэгов CODE? Предупреждал! Так что получай предупреждение. На этот раз не устное!

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VB2008 - Как прочитать Excel файл?

Сообщение FireFenix » 24.09.2010 (Пт) 20:17

Будь добр, оформляй код в тегах Code

В VB6 не было проблемы прочесть Excel файл, а здесь бьюсь неделю - и никак!

Печально... Видно вы и из VB6 не умеете работать с Excel...

Код: Выделить всё
xlsSheet = xlsBook.ActiveSheet("Sheet1") '???

Напрочь лишено смысла...
ActiveSheet - возвращает текущий лист, а не выбирает из списка

Код: Выделить всё
CellVal = xlsSheet.Cells("A1").ToString '???

Бессмысленная строка #2
Cells - выбирает диапазон и .ToString вернёт тип объекта, т.е. "_COM Object"

Правильный подход:
Код: Выделить всё
    Private Sub EX_1()
        Dim xlsApp As New Microsoft.Office.Interop.Excel.Application With {.Visible = True}
        Dim xlsBook As Microsoft.Office.Interop.Excel.Workbook
        Dim xlsSheet As Microsoft.Office.Interop.Excel.Worksheet

        Dim CellVal As String

        xlsBook = xlsApp.Workbooks.Open("D:\111.xlsx") 'Открываем существующий Excel файл

        xlsSheet = xlsBook.Sheets("Лист1") 'Получаем лист по его имени (или порядковому номеру, если передаём Integer, т.е. xlsBook.Sheets(0))

        CellVal = xlsSheet.Range("A1").Text 'Получаем текст ячейки

        xlsBook.Close()
        xlsApp.Workbooks.Close()
        xlsApp.Quit()

        MsgBox(CellVal) 'Выводим на экран содержимое ячейки
    End Sub


P.S. Версию студии не обязательно указывать, код будет один и тот же...
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

immark
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 11.03.2009 (Ср) 16:28

Re: VB2008 - Как прочитать Excel файл?

Сообщение immark » 24.09.2010 (Пт) 23:26

FireFenix! Большое спасибо! Критику учту.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41

    TopList