Йоксель » Главный форум

1c8.1 Преобразование xls в таблицу значений.

(8 posts)
  1. В демо конфигурации есть пример которой загружает файл xls в форму, а можно ли пример в котором файл сразу загружается в ТаблицуЗначений ???

    Отправлено 16 года(лет) назад #
  2. В примере файл загружается в таблицу значений на форме

    Отправлено 16 года(лет) назад #
  3. Подскажите тогда такой момент.
    У меня есть обработка для загрузки из xls файла. В модуле обработки (не в модуле формы) есть функция:

    Функция мПрочитатьТабличныйДокументИзExcel(ПутьКФайлу,ТабличныйДокумент,ТабличнаяЧасть) Экспорт

    xlLastCell = 11;
    Попытка
    Excel = Новый COMОбъект("Excel.Application");
    Excel.WorkBooks.Open(ПутьКФайлу);
    Состояние("Обработка файла Microsoft Excel...");
    ExcelЛист = Excel.Sheets(1);
    Исключение
    Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
    Возврат Ложь;
    КонецПопытки;
    ТабличныйДокумент.Очистить();
    ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);
    RowCount = ActiveCell.Row;
    ColumnCount = ActiveCell.Column;
    Для Column = 1 По ColumnCount Цикл
    ТабличныйДокумент.Область("C"+Формат(Column,"ЧГ=")).ШиринаКолонки = ExcelЛист.Columns(Column).ColumnWidth;
    КонецЦикла;
    Для Row = 1 По RowCount Цикл
    Для Column = 1 По ColumnCount Цикл
    ТабличныйДокумент.Область("R"+Формат(Row, "ЧГ=")+"C"+Формат(Column, "ЧГ=")).Текст = ExcelЛист.Cells(Row,Column).Text;
    КонецЦикла;
    КонецЦикла;
    Excel.WorkBooks.Close();
    Excel = 0;
    Возврат Истина;
    КонецФункции

    Как мне это можно переделать под загрузку с помощью Yoksel ???

    Отправлено 15 года(лет) назад #
  4. Почти так же... Внимательней смотри документацию, там все есть.

    ТабличныйДокумент.Очистить();
    RowCount = Документ.ВысотаТаблицы();
    ColumnCount = Документ.ШиринаТаблицы();
    Для Column = 1 По ColumnCount Цикл
    ТабличныйДокумент.Область("C"+Формат(Column,"ЧГ=")).ШиринаКолонки = Документ.Область(,Column).ШиринаСтолбца();
    КонецЦикла;
    Для Row = 1 По RowCount Цикл
    Для Column = 1 По ColumnCount Цикл
    ТабличныйДокумент.Область("R"+Формат(Row, "ЧГ=")+"C"+Формат(Column, "ЧГ=")).Текст = Документ.Область(Row,Column).Text;
    КонецЦикла;
    КонецЦикла;

    Слегка модифицированный вьювер из демо-конфигурации.

    Attachments

    1. viewer1.zip (4.6 KB, 4,587 downloads) 15 года(лет) old
    Отправлено 15 года(лет) назад #
  5. Спасибо за пример. Вот теперь стало хоть что-то понятно. Документацию которая YokselComServer.chm читаю, но что-то пока не въехал....
    Подскажи еще один момент.
    У тебя в примере на форме размещен объект AciteveX Yoksel, и из МОДУЛЯ ФОРМЫ идет вызов процедуры чтение файла *.xls.

    Элемент = ЭтаФорма.ЭлементыФормы.Йоксель.GetControl ();
    Документ = Элемент.Документ;
    Документ.Открыть (ИмяФайла, ТипФайла, 0);

    В моем же случае функция чтения файла находится в МОДУЛЕ ОБРАБОТКИ, т.е. напрямую к элементам формы обратиться нельзя.
    Как можно поступить ?

    Отправлено 15 года(лет) назад #
  6. Вот еще один модифицированный пример из демки.
    Таким путем лучше идти, листов то несколько может быть...
    P.S. в первый раз написал пару строк на 8ке ;)

    Attachments

    1. ViewerExcel.zip (4.2 KB, 4,597 downloads) 15 года(лет) old
    Отправлено 15 года(лет) назад #
  7. Эх, вернемся к старому разговору...

    Djelf, в твоем примере опять таки чтение файл xls идет посредством объект размещенного на форме.
    Йоксель = Новый ComObject ("Йоксель");
    гКнига = Йоксель.ОткрытьКнигуExcel (ФайлКнигиExcel);

    ЭтаФорма.ЭлементыФормы.Листы.РаспределятьПоСтраницам = Ложь;
    Страницы = ЭтаФорма.ЭлементыФормы.Листы.Страницы;

    А мне нужен пример чтобы можно было открыть xls файл и загрузить его ТЗ, в обработке в которой нет форм...

    Отправлено 14 года(лет) назад #
  8. Стоп. Кажется начинаю понимать что к чему...

    Отправлено 14 года(лет) назад #

RSS экспорт этой темы

Отправить сообщение

Вы должны войти в систему, чтобы оставлять сообщения.