1с 77 и Excel

Тема в разделе "1C и всё что с ней связано", создана пользователем lira89, 5 июл 2010.

  1. lira89

    lira89 Well-Known Member

    Регистрация:
    12 мар 2010
    Сообщения:
    159
    Симпатии:
    0
    Здравствуйте, возникла небольшая проблема со считыванием данных из Excel в таблицу значений. Есть функция, которая возвращает значение в нужной ячейке:
    Код (Text):
    Функция ПолучитьЗначение(Excel,у,х)
    Cell=Excel.Cells(у, х);
    Возврат Cell.Value;
    КонецФункции
    И далее по коду идет обращение к этой функции:
    Код (Text):
    ТЗ1_ЛичныеДанныеАсп.Пол = (СокрЛП(Строка(ПолучитьЗначение(Эксель,i,"ASPSEX"))));
    Здесь последний параметр идет не число, а название столбца(идентификатор), но почему-то выдается ошибка " Cell=Excel.Cells(у, х) ;
    {Обработка.ЗагрузкаАспирантов.Форма.Модуль(4)}: : " в функции ПолучитьЗначение(Excel,у,х). Я думаю, что проблема в том, что последний параметр у меня строка, но как решить эту проблему, не меняя название столбца на его номер, т.е. чтобы считывание шло по названию столбцов????
     
  2. Hryv

    Hryv Гость

    Если известно в какой строке написаны названия столбцов, то перебирая столбцы попорядку (а может и каким-то более красивым способом) можно найти в каком столбце написано "ASPSEX", после этого использовать Cells(у, х)
     
  3. lira89

    lira89 Well-Known Member

    Регистрация:
    12 мар 2010
    Сообщения:
    159
    Симпатии:
    0
    А можно привести наглядный пример? Заранее спасибо.
     
  4. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    Тогда необходимо, чтобы в первой строке дублировались названия столбцов
     
  5. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Например, так
    Sheet = WorkBook.WorkSheets();
    WorkBook.Sheets(NL.Activate(); // NL -номер листа
    RowCount = ActiveCell.Row;
    ColumnCount = ActiveCell.Column;
    TZ = СоздатьОбъект("ТаблицаЗначений");
    TZ.НоваяКолонка("NUM");
    TZ.НоваяКолонка("NAME");

    For N = 1 to ColumnCount do
    TZ.НоваяСтрока();
    TZ.NUM = N;
    XCell = ExcelApp.Cells(XX,N).Value; // XX - номер строки с заголовками
    TZ.NAME = XCell;
    enddo;
    Далее можно в созданной TZ искать номер колонки по ее наименованию
     
  6. lira89

    lira89 Well-Known Member

    Регистрация:
    12 мар 2010
    Сообщения:
    159
    Симпатии:
    0
    спасибо
     
Загрузка...

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