Недавно добавленные исходники

•  TDictionary Custom Sort  3 198

•  Fast Watermark Sources  2 960

•  3D Designer  4 725

•  Sik Screen Capture  3 231

•  Patch Maker  3 445

•  Айболит (remote control)  3 511

•  ListBox Drag & Drop  2 882

•  Доска для игры Реверси  80 258

•  Графические эффекты  3 820

•  Рисование по маске  3 150

•  Перетаскивание изображений  2 519

•  Canvas Drawing  2 646

•  Рисование Луны  2 474

•  Поворот изображения  2 067

•  Рисование стержней  2 101

•  Paint on Shape  1 507

•  Генератор кроссвордов  2 159

•  Головоломка Paletto  1 712

•  Теорема Монжа об окружностях  2 143

•  Пазл Numbrix  1 638

•  Заборы и коммивояжеры  1 993

•  Игра HIP  1 255

•  Игра Go (Го)  1 192

•  Симулятор лифта  1 408

•  Программа укладки плитки  1 153

•  Генератор лабиринта  1 490

•  Проверка числового ввода  1 280

•  HEX View  1 451

•  Физический маятник  1 311

•  Задача коммивояжера  1 348

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

OLE Automation для работы с Excel



Автор: Konstantin Khripkov

Фирма Microsoft выпустила новую электронную таблицу Sexcel 1.1. На первый взгляд она ничем не отличается от Excel 5.0, но удовольствия от работы гораздо больше.

Подскажите мне основные функции OLE Automation для работы с Excel из Delphi.

Есть множество статей по этому вопросу.

Я не могу привести полный код моего проекта, здесь я поместил лишь его небольшую часть, создающую и форматирующую таблицу Excel на основе содержимого DBGrid, сгенеренного с помощью SQL запроса. Код содержит некоторое форматирование ячеек. Код проверен в работе с Delphi 3 и Excel 97:


procedure TfrmBlank.btnExcelClick(Sender: TObject);
var
  XL, XArr: Variant;
  i: Integer;
  j: Integer;
begin
  {не забудьте включить ComObj в список используемых модулей}
  // Создаем массив элементов, полученных в результате запроса
  XArr := VarArrayCreate([1, EmailQuery.FieldCount], varVariant);
  XL := CreateOLEObject('Excel.Application'); // Создание OLE объекта
  XL.WorkBooks.add;
  XL.visible := true;

  j := 1;
  EmailQuery.First;
  while not EmailQuery.Eof do
  begin
    i := 1;
    while i <= EmailQuery.FieldCount do
    begin
      XArr[i] := EmailQuery.Fields[i - 1].Value;
      i := i + 1;
    end;
    XL.Range['A' + IntToStr(j),
      CHR(64 + EmailQuery.FieldCount) + IntToStr(j)].Value := XArr;
    EmailQuery.Next;
    j := j + 1;
  end;
  XL.Range['A1', CHR(64 + EmailQuery.FieldCount) + IntToStr(j)].select;
  // XL.cells.select;                     // Выбираем все
  XL.Selection.Font.Name := 'Garamond';
  XL.Selection.Font.Size := 10;
  XL.selection.Columns.AutoFit;
  XL.Range['A1', 'A1'].select;
end;

Дополнение

При однопроходной передачи полной страницы гораздо удобнее использовать двумерный Variant Array, чем запихивать данные туда построчно. Функция VarArrayCreate позволяет создать многомерные массивы при определении 2N (где N - кол-во измерений) границ массива в аргументе Bounds.





Похожие по теме исходники

Win Console

Molecula (3D молекула)

Molecule (молекула)

Console FTP

 

CMD OLE

DeParole

Console SmartEngine

Close Console on Event

 

Console Task Manager

Нейросеть для распознавания образов

Механизм станка качалки для нефти

Весы для взвешивания

 

Кувшины для воды

Доска для игры Реверси

Примеры работы с БД

График работы

 

Экспорт баз данных в Excel

Transfer Tables Excel-Access

Excel Films Lister

Work with Word and Excel

 



Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте