Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Имена листов Excel / 9 сообщений из 9, страница 1 из 1
13.12.2013, 06:28
    #38499436
Gagarin_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена листов Excel
Друзья!

Мне необходимо в ListBox поместить имена листов файла Excel. Делаю это так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & openFileDialog1.FileName.ToString & ";Extended Properties=Excel 8.0")
cn.Open()
Dim tbl As DataTable = cn.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object(-1) {})
cn.Close()

For i As Integer = 0 To tbl.Rows.Count - 1
ListBox2.Items.Add(Convert.ToString(tbl.Rows(i)("TABLE_NAME")))
Next



Пробема: команда
Код: vbnet
1.
cn.Open()

открывает выбранный эксель файл. То есть открывается окно диалога "Файл стал доступным. Редактирование файла теперь разрешено." После закрытия диалога открывается сам файл. А мне он не нужен открытым. Мне нужны были только имена листов.
Помогите!
...
Рейтинг: 0 / 0
13.12.2013, 08:01
    #38499459
cynep kopoBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена листов Excel
Gagarin_74,

А Вас только такой подход интересует? Interop, например, не подойдет?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Imports Microsoft.Office.Interop

Public Class Form1
    Private excelApp As New Excel.Application
    Private wbook As Excel.Workbook

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        wbook = excelApp.Workbooks.OpenXML("Нужный файл")
        For Each wsheet As Excel.Worksheet In wbook.Worksheets
            ListBox2.Items.Add(wsheet.Name)
        Next
    End Sub
End Class
...
Рейтинг: 0 / 0
13.12.2013, 08:47
    #38499483
Gagarin_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена листов Excel
cynep kopoBka,

Любой подойдет, лишь бы проблема была решена.
Подскажит Ваш способ.
...
Рейтинг: 0 / 0
13.12.2013, 08:49
    #38499485
Gagarin_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена листов Excel
cynep kopoBka,

Дико извиняюсь!!! Спасибо за код!
...
Рейтинг: 0 / 0
13.12.2013, 09:41
    #38499549
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена листов Excel
Microsoft.Office.Interop на помойку.
...
Рейтинг: 0 / 0
13.12.2013, 10:44
    #38499655
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена листов Excel
МСУMicrosoft.Office.Interop на помойку.
Поясни?
...
Рейтинг: 0 / 0
13.12.2013, 11:24
    #38499712
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена листов Excel
ЕвгенийВПоясни?
Пояснял уже миллион раз: Open XML SDK 2.5
...
Рейтинг: 0 / 0
13.12.2013, 13:48
    #38500004
cynep kopoBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена листов Excel
МСУ,
Спасибо за совет. Скачал.


Gagarin_74,
Как минимум одно неудобство в описанном мной способе очевидно: необходимо ставить МС Офис для работы приложения.
...
Рейтинг: 0 / 0
13.12.2013, 14:28
    #38500088
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имена листов Excel
cynep kopoBkaКак минимум одно неудобство в описанном мной способе очевидно: необходимо ставить МС Офис для работы приложения.
Правильно, а лицензии довольно таки не дешевые. Второе - подход не годится для серверных решений . Третье - допотопный неуправляемый COM это источник зла.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Имена листов Excel / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]