• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

1с 77 и Excel

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

lira89

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

Hryv

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

lira89

А можно привести наглядный пример? Заранее спасибо.
 
G

gorlanovmax

Тогда необходимо, чтобы в первой строке дублировались названия столбцов
 
V

vbs

Например, так
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 искать номер колонки по ее наименованию
 
Мы в соцсетях:

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