• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

считывание данных из Excel

  • Автор темы lira89
  • Дата начала
L

lira89

Здравствуйте. вот возникла такая проблема (1с 77). Есть книга Excel со множеством листов. Надо считать все данные с каждого листа. Мой отрывок кода приведен ниже:
Код:
j=0;
КоличествоЛистов = Книга1.Sheets.Count;
Для j=1 по КоличествоЛистов Цикл
Лист1 = Книга1.WorkSheets(j);
ИмяЛиста = Книга1.WorkSheets(j).Name; 
i=2; //со 2 строки начинаются данные в документе Microsoft Excel
Сообщить("Идет загрузка файла в справочник","i");
Стр=СокрЛП(Строка(ПолучитьЗначение(Эксель1,i,1))); 
Пока ПустаяСтрока(Стр)=0 Цикл //пока непустые ячейки в строках — загружаем
Стр=СокрЛП(Строка(ПолучитьЗначение(Эксель1,i,1)));
Если ПустаяСтрока(Стр)=0 Тогда 
.......
Иначе	
Сообщить("Загрузка листа"""+ИмяЛиста+""" IPK.xls закончена.","i"); 
Прервать;
КонецЕсли; 
КонецЦикла;
КонецЦикла;
Сообщить("Загрузка файла закончена.","i");
Проблема возникла в том, что в переменную Стр попадают значения только из первого листа. а сам цикл построен и работает правильно(проверяла через отладчик :) ). Вот приведен код функции, которая присваивается переменной Стр:
Код:
Функция ПолучитьЗначение(Excel,у,х)
Cell=Excel.Cells(у, х);
Возврат Cell.Value;
КонецФункции
Извиняюсь за многословие, но очень нужна помощь в данном вопросе. Заранее спасибо.
 
H

hosm

при взятии значения можно указать с какого листа брать данные. синтаксис 1с не знаю, но в экселе есть обращения что-то типа Лист1!A1, т.е. что-то написать типа Книга1.WorkSheets(j).Cells(у, х). Если лист не указан, берет с текущего листа - видать, у вас это первый.
 
G

gorlanovmax

У Вас Стр=СокрЛП(Строка(ПолучитьЗначение(Эксель1,i,1)));

Должно быть Стр=СокрЛП(Строка(ПолучитьЗначение(Лист1,i,1)));

Добавлено: И зачем тогда вообще была ведена переменная Лист1, если она нигде у Вас не используется
 
L

lira89

Спасибо огромное за советы. Все начало работать как надо)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!