Выгружаем в EXCEL с помощью ADO

Наверное уже многие знают что с помощью технологии ADO можно быстро читать большие объемы информации из книг excel. Но ведь с помощью данной технологии можно так же легко создавать и заполнять файлы excel.
Неверите ? Смотрите …

Скачать ПримерADO.epf (6.91 kb)

Итак, постановка задачи: Создать с помощью механизма ADO файл excel и выгрузить в него из справочника номенклатура код и наименование.

    ИмяФайлаЭксель = "D:\Export.xls"; // Имя создаваемого файла
    
    // Собираем строку подключения
    СтрокаПодключения = "
    |Provider=Microsoft.Jet.OLEDB.4.0;
    |Data Source="+ИмяФайлаЭксель+";
    |Extended Properties=""Excel 8.0;HDR=No;"";";
    
    // Создаем объект ADOX.Catalog
    Catalog = Новый COMОбъект("ADOX.Catalog");
    Catalog.ActiveConnection = СтрокаПодключения;
    
    // Создаем таблицу и добавляем в неё два столбца
    Table = Новый COMОбъект("ADOX.Table");
    Table.Name = "Table";
    
    Table.Columns.Append("Code");
    Table.Columns.Append("Description");
    
    // Присоединяем таблицу
    Catalog.Tables.Append(Table);
    
    Table = Неопределено;
    Catalog = Неопределено;
    // Создаем соединение
    Connection = Новый COMОбъект("ADODB.Connection");    
    Connection.Open(СтрокаПодключения);
    
    Command = Новый COMОбъект("ADODB.Command");
    Command.ActiveConnection = Connection;
    Command.CommandType = 1;
        // Получаем номенклатуру для выгрузки    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    |    Номенклатура.Код,
    |    Номенклатура.Наименование
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура");
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    // Заполняем таблицу данными выборки
    Пока Выборка.Следующий() Цикл
        Command.CommandText = "
        |INSERT INTO [Table] VALUES ('"+Выборка.Код+"','"+Выборка.Наименование+"')";
        Command.Execute();
    КонецЦикла; 
         
    // Закрываем соединение
    Command = Неопределено;
    Connection.Close();
    Connection = Неопределено;

Все, готово !

Плюсы данного способа формирования файла excel:

- Большая скорость

- Не требуется запуск самого процесса excel.exe, как это происходит в случае использования OLE-сервера excel.application, а следовательно нет необходимости отслеживать и перехватывать ошибки. Те кто использовал OLE-cоединение – тот поймет о чем я говорю, мало радости когда в случае программной или пользовательской ошибки процесс excel остается висеть в памяти.

- Не требуется самого приложения EXCEL, достаточно что бы на компьютере был установлен OLEDB провайдер Microsoft.Jet.OLEDB.4.0

Минусы тоже имеются:

- Нельзя красиво оформить ячейки – шрифт, рамки и т.д.

P.S. Возможен "комбинированный" способ: с помощбю ADO формируется файл, а затем с помощью OLE "наводится марафет".

Источник: http://infostart.ru/public/65045/

. . . .

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!


You must be logged in to post a comment.

  • Облако

    Облако тегов требует для просмотра Flash Player 9 или выше.

  • На сайте

  • Реклама

. . . .
. . . . . . . . . . . . . . . . . .