1с 77 и Excel

lira89

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

Hryv

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

lira89

Well-Known Member
12.03.2010
154
0
#3
А можно привести наглядный пример? Заранее спасибо.
 

gorlanovmax

Well-Known Member
19.06.2008
286
0
#4
Тогда необходимо, чтобы в первой строке дублировались названия столбцов
 

vbs

Well-Known Member
18.02.2007
1 708
3
#5
Например, так
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 искать номер колонки по ее наименованию