Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.188.218.184] |
|
Сообщ.
#1
,
|
|
|
Есть ли спец функции? Скажем, обращение к ячейкам?
|
Сообщ.
#2
,
|
|
|
Это всё делается через OLE. Данный вопрос многократно обсуждался, воспользуйся для начала поиском, а там уж если что непонятно спрашивай.
|
Сообщ.
#3
,
|
|
|
igosm, вот например выдернул кусок кода из одного документа - смотри разбирайся:
А = СоздатьОбъект("Excel.Application"); КвоЛистов = А.Worksheets.Count; Для Индекс = 1 По КвоЛистов Цикл спЛистов.ДобавитьЗначение(А.Worksheets(Индекс).Name); КонецЦикла; листНакладной = 0; Если спЛистов.ВыбратьЗначение(,"Выберите лист",листНакладной,) < 1 Тогда Возврат; КонецЕсли; Результат = А.Worksheets(листНакладной).Activate; ИспДиапазон = А.Worksheets(листНакладной).UsedRange; СтрНач = ИспДиапазон.Row; СтрКон = ИспДиапазон.Rows.Count; СтлНач = ИспДиапазон.Column; СтлКон = ИспДиапазон.Columns.Count; НачСтрока = 0; Если ВвестиЧисло(НачСтрока,"Строка начала табличной части накладной",,0,0) = 0 тогда Возврат; КонецЕсли; КонСтрока = 0; Если ВвестиЧисло(КонСтрока,"Строка конца табличной части накладной",,0,0) = 0 тогда Возврат; КонецЕсли; столбецКод = 0; Если ВвестиЧисло(столбецКод,"Колонка кода изделия",,0,0) = 0 тогда Возврат; КонецЕсли; столбецНаименован = 0; Если ВвестиЧисло(столбецНаименован,"Колонка наименования изделия",,0,0) = 0 тогда Возврат; КонецЕсли; столбецКолво = 0; Если ВвестиЧисло(столбецКолво,"Колонка количества",,0,0) = 0 тогда Возврат; КонецЕсли; столбецСумма = 0; Если ВвестиЧисло(столбецСумма,"Колонка суммы",,0,0) = 0 тогда Возврат; КонецЕсли; Для Индекс = НачСтрока По КонСтрока Цикл Состояние("Анализ строк накладной - " + Индекс + "/" + СтрКон); Если СокрЛП(Строка(А.Worksheets(листНакладной).Cells(Индекс, столбецКод).Value+А.Worksheets(листНакладной).Cells(Индекс, столбецНаименован).Value)) = "" Тогда Продолжить; КонецЕсли; // ... Цена = А.Worksheets(листНакладной).Cells(Индекс, СтолбецСумма).Value; Кво = А.Worksheets(листНакладной).Cells(Индекс, СтолбецКолво).Value; // ... // тут что-то делаем с данными // ... КонецЦикла; |
Сообщ.
#4
,
|
|
|
Доступ к ячейке активного листа в Excel
Excel=СоздатьОбъект("Excel.Application"); w1=Excel.Cells(Ячейка,Столбец); Знач=w1.Value; // Знач-значение ячейки |
Сообщ.
#5
,
|
|
|
есть еще 1 спрособ. можно просто сохранить уже сформированную страницу в xls то есть
... table.write(some.xls,1) excel = createobject("Excel.Application"); excel.open("some.xls"); ; а дальше в excele работаем через VBA |
Сообщ.
#6
,
|
|
|
Есть еще способ, но более извращенный. Экселевский файл сохраняещь как дбф, а потом работаешь с ним через объект XBase
Что то типа этого: Спр = СоздатьОбъект("Справочник.Какойнибудь"); // будем грузить например в справочник ДБ = СоздатьОбъект("XBase"); ДБ.ОкткрытьФайл("exel.dbf"); кс = ДБ.КоличествоЗаписей(); Для А = 1 По Кс Цикл ДБ.Перейти(А); Спр.Новый(); Спр.Наименование = ДБ.Name; Спр.Цена = ДБ.Price; Спр.Записать(); КонецЦикла; ДБ.ЗакрытьФайл(); Маленькое замечение. Если будешь сохранять xls таблицу в дбф, то первая строка у тебя должна будет содержать наименование полей (name,price и тд.) |