|
чтение Экселя | ☑ | ||
---|---|---|---|---|
0
popoff17
12.07.12
✎
10:39
|
Здравствуйте!
Прошу срочной помощи: Нужно загрузить данные из файла 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ю колонку. Подскажите как прочитать остальные колонки, пожалуйста. Нужно просто оперативно решить вопрос, гуглить что и как потом буду. Заранее спасибо! |
|||
1
shuhard
12.07.12
✎
10:50
|
(0)[попробовал изменить Item(0) - все равно читает только 4ю колонку. ]
лажа |
|||
2
popoff17
12.07.12
✎
10:53
|
(1) т.е.?
|
|||
3
vbh
12.07.12
✎
11:10
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
Книга = Получить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)); Конецесли; КонецЦикла; КонецЦикла; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |