Здравствуйте!
Прошу срочной помощи:
Нужно загрузить данные из файла excel в документ 1с.
ранее читал эксель таким образом:
Эксель = Новый COMОбъект("Excel.Application");
Сейчас поставили на все машины ОС win7 и офисы 2010. Появляется ошибка. Поискал решение - нашел тут на мисте следующий пример чтения:
MyCon = Новый COMОбъект ("ADODB.Connection");
MyCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Загрузка в регистр остатков отпусков\13-12-2011.xls;Extended Properties=""Excel 8.0;HDR=No;IMEX=1""");
MyCat=Новый COMОбъект ("ADOX.Catalog");
MyCat.ActiveConnection = MyCon;
ИмяПервойСтраницы=MyCat.Tables.Item(0).Name;
MyRst = Новый COMОбъект ("ADODB.Recordset");
MyStr = "select * from ["+ИмяПервойСтраницы+"]";
MyRst.Open (MyStr, MyCon, 2, 3);//adOpenDynamic, adLockOptimistic
Пока НЕ MyRst.EOF() Цикл
Сообщить(Строка(MyRst.Fields(MyRst.Fields.Item(0).Name).Value));
MyRst.MoveNext();
КонецЦикла;
MyRst.Close();
MyCon.Close();
Если правильно понял - данные выдергиваются из экселя запросом. Тут вывод:
Сообщить(Строка(MyRst.Fields(MyRst.Fields.Item(0).Name).Value));
Выводятся значения 4й колонки начиная с 3й строки. А нужно прочитать все колонки. Такой код вижу впервый, поэтому потыкался наугад, попробовал изменить Item(0) - все равно читает только 4ю колонку.
Подскажите как прочитать остальные колонки, пожалуйста.
Нужно просто оперативно решить вопрос, гуглить что и как потом буду.
Заранее спасибо!
Процедура КнопкаВыполнитьНажатие(Кнопка)
Книга = ПолучитьCOMОбъект(СтрокаФайла);
Лист1 = Книга.Worksheets(НоменВкладкиЭксельФайла);
ФайлСтрок = Лист1.Cells(1,1).SpecialCells(11).Row;
ФайлКолонок = Лист1.Cells(1,1).SpecialCells(11).Column;
Для СчетчикСтрок= 1 по ФайлСтрок Цикл
Значение = ТЗ.Добавить();
Значение.АдресУзла = Лист1.Cells(СчетчикСтрок, НомерСтолбцаАдресаВЭкселе).Value;
//Значение.СкоростьПорта = Лист1.Cells(СчетчикСтрок, 3).Value;
Состояние(Лист1.Cells(СчетчикСтрок, НомерСтолбцаАдресаВЭкселе).Value);
Для кол=1 по ФайлКолонок Цикл
Если СокрЛП(Лист1.Cells(СчетчикСтрок, кол).Value)<>"" Тогда
Значение.Комментарий=Строка(Значение.Комментарий)+" / "+Строка(СокрЛП(Лист1.Cells(1, кол).Value))+"-"+Строка(СокрЛП(Лист1.Cells(СчетчикСтрок, кол).Value));
Конецесли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой