Имя: Пароль:
1C
 
Excel неверно определяет количество листов
0 kIR
 
21.08.17
12:16
Доброго дня!
Почему-то у некоторых документов Excel некорректно определяет количество листов -  2 вместо 1 и из-за этого происходит задвоение загружаемых позиций.
Код такой:

//Создание объекта для установки связи с источником данных
    Connection = Новый COMОбъект("ADODB.Connection");
    
    СтрокаПодключения = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = "+СокрЛп(СтрокаЗагрузки.ПутьКФайлу);
    
    Файл = Новый Файл(СтрокаЗагрузки.ПутьКФайлу);
Если ВРЕГ(Файл.Расширение) = ВРЕГ("xls") Тогда
        СтрокаПодключения = СтрокаПодключения + "; Extended Properties = "+"""Excel 8.0"+";HDR=NO"";";
    Иначе
        СтрокаПодключения = СтрокаПодключения + "; Extended Properties = "+"""Excel 12.0 XML"+";HDR=NO"";";
    КонецЕсли;  
    
    Попытка
        Connection.Open(СтрокаПодключения);
    Исключение
        ВывестиСообщениеООшибке(ОписаниеОшибки());
        Отказ = Истина;
        Возврат Отказ;
    КонецПопытки;


//создание объекта выполнения команды
    Command = Новый COMОбъект("ADODB.Command");
    
    //создание объекта подключения к файлу
    axCatalog = Новый COMОбъект("ADOX.Catalog");                                                
    axCatalog.ActiveConnection = Connection;

    //получим листы документа,
    Для Каждого Лист ИЗ axCatalog.Tables Цикл
...


И бла-бла-бла.
Только вот в axCatalog.Tables почему то 2 вместо 1. И не по всем документам.

Почему такое может быть? куда рыть?

Спасибо
1 v77
 
21.08.17
12:19
скрытые листы
2 kIR
 
21.08.17
12:22
(1) все отображены. Команда "отобразить лист.." недоступна
3 v77
 
21.08.17
12:33
(2) Ну тогда наверное всё как обычно. Понапрограммировал ошибок.
4 Tatitutu
 
21.08.17
12:41
массив начинаться с 0
0 и 1  - это два прохода в цикле
5 kIR
 
21.08.17
12:44
(4) нет,именно,что в "кривых" документах axCatalog.Tables = 2, в корректных = 1
6 h-sp
 
21.08.17
13:13
(5) там в axCatalog.Tables не только листы, но и поименованные области.

поэтому поищите на этом листе, вдруг там область есть.
7 kIR
 
21.08.17
15:15
(6) ну они, наверное, были бы видны..
8 kIR
 
21.08.17
15:19
(6) да и поискал через ctrl + G - нет их там
9 h-sp
 
21.08.17
15:20
(8) ну тогда отладчиком глянь
10 Вафель
 
21.08.17
15:22
доработай алгоритм, чтоб дубли не создавал. Как в кд - сначала ищем, потом создаем
11 kIR
 
21.08.17
15:44
(10) видимо,придется
12 25-11
 
21.08.17
21:44
Точно нет "очень скрытых" листов? Я как раз сегодня такой искал. Открыл  "Разработчик" (у меня офис 2016, если это имеет значение) и вижу лист у которого свойство
Visible = -1 (xlSheetVeryHidden)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.