![]() |
![]() |
|
Подключение к excel при помощи ado. Как узнать имя листа по его номеру? | ☑ | ||
---|---|---|---|---|
0
palpetrovich
17.04.12
✎
17:13
|
Примерно такой код:
СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+ИмяФайла+"; Extended Properties=""Excel 8.0;"""; Connection = Новый COMОбъект("ADODB.Connection"); Connection.Open(СтрокаПодключения); RecordSet = Connection.Execute("SELECT * FROM [Лист" + НомерЛиста + "$]"); Когда листы эксель называются Лист1, Лист2... то все работает замечательно, но в реальности имена листов обычно любят переименовывать... |
|||
1
КМ155
17.04.12
✎
17:15
|
(0) ADOX
|
|||
2
palpetrovich
17.04.12
✎
17:18
|
(1) о, точно, где-то видел. Спасибо
|
|||
3
КМ155
17.04.12
✎
17:20
|
(2) АCon = Новый COMОбъект ("ADODB.Connection");
АCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\777.xls;Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""); ХCat=Новый COMОбъект ("ADOX.Catalog"); ХCat.ActiveConnection = АCon; этаХня=ХCat.Tables.Item(0).Name; |
|||
4
palpetrovich
17.04.12
✎
17:38
|
(3) Да, работает, спасибо.
Правда кроме существующих листов возвращает еще что-то. К прмеру, последний, 3-тий лист называется Invoice$, так на номер+1 возвращает: Invoice$Print_Area |
|||
5
КМ155
17.04.12
✎
17:42
|
(4) дык у листов и тип есть
Для Каждого чётотам Из ХCat.Tables Цикл Если чётотам.Type="TABLE" Тогда Сообщить(MDBТаблица.Name); КонецЕсли; КонецЦикла; |
|||
6
palpetrovich
17.04.12
✎
17:51
|
(5) забавненький результат:
н=0; Для Каждого чётотам Из axCatalog.Tables Цикл Сообщить("Имя:" + чётотам.Name + " Type: " + чётотам.Type); н=н+1; КонецЦикла; Имя:'Bank Details$' Type: TABLE Имя:'Packing List$' Type: TABLE Имя:Invoice$ Type: TABLE Имя:Invoice$Print_Area Type: TABLE |
|||
7
palpetrovich
17.04.12
✎
17:59
|
странненько, есть кавычки или нет - лист читает верно :)
|
|||
8
КМ155
17.04.12
✎
18:20
|
(6)
(7) msdn кури |
|||
9
etc
17.04.12
✎
20:12
|
без ADOX:
|
|||
10
Torquader
17.04.12
✎
23:44
|
Каталог возвращает имена листов и имена областей на листах в одном месте,что немного непонятно - но сделано именно так.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |