0
Господин ПЖ
15.03.11
✎
18:38
|
Начало стандартное - провайдер, строка соединения и т.п. неинтересные вещи.
Потом интереснее уже:
Catalog = Новый COMОбъект("ADOX.Catalog");
Catalog.ActiveConnection = БазаЭкселя;
лсзИменаЛистовКниги = Новый СписокЗначений;
лсИмяЛиста = "";
Если ИмяНомерЛиста <> Неопределено тогда
Попытка
лсИмяЛиста = Catalog.Tables.Item(ИмяНомерЛиста).Name;
Исключение
КонецПопытки;
КонецЕсли;
Для iCount = 0 По Catalog.Tables.Count - 1 Цикл
Если Catalog.Tables.Item(iCount).Type = "TABLE" Тогда
лсзИменаЛистовКниги.Добавить(Catalog.Tables.Item(iCount).Name);
КонецЕсли;
КонецЦикла;
в списке получаю имена листов книги:
Справочник$
Справочник$_FilterDatabase
Расходы 2011$
в самой книге при открытии ее обычным экселем порядок такой:
Расходы 2011
Справочник
Т.е. все в обратном порядке + непонятная таблица Справочник$_FilterDatabase (я подозреваю что это автофильтр наложенный на лист Справочник - хотя не уверен).
Собственно а как получить порядок и количество листов соответствующий тому что отображается пользователю в эксель?
Строка подключения простая:
БазаЭкселя = Новый COMОбъект("ADODB.Connection");
СтрокаПодключения = "
|Provider=Microsoft.Jet.OLEDB.4.0;
|Data Source=" + ИмяФайла + ";
|Extended Properties=""Excel 8.0;IMEX=1;HDR=No";"";";
|
|