Воскресенье, 05.05.2024
В помощь 1С программисту
Меню сайта
Статистика




Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Работа с Экселем (EXCEL)


В данном разделе рассмотрим варианты получения данных из экселя (MS EXCEL) и создание файлов таблицы эксель.


Импорт из экселя в 1С

Импорт данных из файла, созданного экселем (MS EXCEL) будем делать через объект OLE. 1С работает с этим пакетом только если на компьютере установлен компонента из комплекта MS Office - Excel.
Сначала создадим объект:

Попытка
Excel = СоздатьОбъект("Excel.Application");
Исключение
Предупреждение(ОписаниеОшибки());
ВызватьИсключение;
КонецПопытки;

Откроем файл:

ПолныйПутьКФайлу="c:\excell.xls";
Excel.WorkBooks.Open(ПолныйПутьКФайлу);


Получим количество строк и колонок (если это нада)

НомерПоследнейСтрокиЭкселя = Excel.Cells.CurrentRegion.Rows.Count;
другой вариант (якобы для другой версии)
НомерПоследнейСтрокиЭкселя = Excel.Cells(1,1).SpecialCells(11).Row;

если в строках 1-4 нашего экселевского файла есть данные, а строка 5 пустая, в строке 6 и в последующих строках также есть данные - то данная комманда все равно считает что строк только 4!!!
поэтому данные должны быть без пустых строк!!
или вручную указывайте количество строк, которое нужно считать

НомерПоследнейКолонкиЭкселя = Excel.Cells.CurrentRegion.Columns.Count;

Выборка строк

Для Строка=2 По НомерПоследнейСтрокиЭкселя Цикл
//Первая колонка обязательно должна быть заполнена, иначе считаем что в этой строке нет данных
Если ПустоеЗначение(СокрЛП(Excel.Cells(Строка,1).Value))=1 Тогда
Сообщить("Строка "+Строка+" пустая");
Продолжить;
//или Прервать;
КонецЕсли;

Выборка колонок в цикле

Для Колонка=1 По НомерПоследнейКолонкиЭкселя Цикл
Значение=СокрЛП(Excel.Cells(Строка,Колонка).Value);
КонецЦикла;

или заполнение каждой переменной соответсвующими данными

ЕДРПОУ=СокрЛП(Excel.Cells(Строка,1).Value);
МФО=СокрЛП(Excel.Cells(Строка,2).Value);
Наименование=СокрЛП(Excel.Cells(Строка,3).Value);//и т.д.
КонецЦикла;


Обязательно закроем файл! Если не закроем - он будет доступен только "для чтения" до тех пор, пока не закроем данную обработку!

Excel.Quit();

Так же, чтобы считать данные из ячейки книги Эксель, можно воспользоваться командой Range (есть мнение что работает быстрее).
Excel.Range(СокрЛП(Колонка)+СокрЛП(Строка)).value ,
где Колонка в символьное представление колонки (A, Z или BC).


Экспорт данных из 1С в эксель.

В принципе, можно воспользоваться стандартной процедурой "Файл-Сохранить как-Таблицы EXCEL", но случаи бывают разные. Например, автоматические обмены с другими БД. Тут можно воспользоваться стандартной функцией 1С "Записать". Сначала формируем как обычную печатную форму:

Таб = СоздатьОбъект("Таблица");

затем заполняем ее, а вконце, вместо Таб.Показать("Таблица") воспользуйтесь

Таб.Записать(<ИмяФайла>,"xls")

Хотя, есть ограничение в 256 символов в одной ячейке таблицы, если использовать предложенные ранее примеры. В случае экспорта через OLE такого ограничения не существует, однако не стоит забывать о том, что Excel должен быть установлен на компьютере, с которого данная выгрузка выполняется. Делаем практически то же самое что и при импорте... Создаем объект:

Excel = СоздатьОбъект("Excel.Application");

Создаем новый файл:

Книга = Excel.Workbooks.Add();

Заполняем данными:

Excel.Cells(НомерСтроки,НомерКолонки).Value = НомерСтроки;
Excel.Cells(НомерСтроки,НомерКолонки).Value = СокрЛП(Спр.ТекущийЭлемент());
Excel.Cells(НомерСтроки,НомерКолонки).Value = СокрЛП(Спр.ПолнНаименование);


(заполняем своими данным)
Если требуется сохранить полученный файл, тогда используйте

Книга.SaveAs("c:\test.xls");,

в скобках указываем полный путь, имя и расширение (тип) файла. Если только отобразить и самими поработать с сформированной таблицей, тогда:

Excel.Visible = 1;

Использование обех этих строк отобразят и сохранят полученный результат.
Ну и, конечно же, не забываем закрыть файл!

Excel.Quit();


Часто используемые методы для чтения/установки значений в Excel можно посмотреть на странице "Комманды EXCEL"

Поиск
Друзья сайта
  • Доска бесплатных объявлений
  • Как я отдохнул в Крыму
  • Официальный блог
  • Программы для всех
  • FAQ по системе
  • Инструкции для uCoz
  • Спортклуб киокушинкай карате
  • Copyright MyCorp © 2024
    Сделать бесплатный сайт с uCoz