1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

Тема в разделе "Базы данных и администрирование", создана пользователем lira89, 8 июл 2010.

  1. lira89

    lira89 Well-Known Member

    Репутация:
    0
    Регистрация:
    12 мар 2010
    Сообщения:
    154
    Симпатии:
    0
    Здравствуйте. вот возникла такая проблема (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;
    КонецФункции
    Извиняюсь за многословие, но очень нужна помощь в данном вопросе. Заранее спасибо.
     
  2. hosm

    hosm * so what *

    Репутация:
    0
    Регистрация:
    18 май 2009
    Сообщения:
    2.442
    Симпатии:
    9
    при взятии значения можно указать с какого листа брать данные. синтаксис 1с не знаю, но в экселе есть обращения что-то типа Лист1!A1, т.е. что-то написать типа Книга1.WorkSheets(j).Cells(у, х). Если лист не указан, берет с текущего листа - видать, у вас это первый.
     
  3. gorlanovmax

    gorlanovmax Well-Known Member

    Репутация:
    0
    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    У Вас Стр=СокрЛП(Строка(ПолучитьЗначение(Эксель1,i,1)));

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

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

    lira89 Well-Known Member

    Репутация:
    0
    Регистрация:
    12 мар 2010
    Сообщения:
    154
    Симпатии:
    0
    Спасибо огромное за советы. Все начало работать как надо)
     
Загрузка...

Поделиться этой страницей