Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

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

Delphi , Технологии , OLE Automation MSOffice

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.

Статья OLE Automation для работы с Excel раздела Технологии OLE Automation MSOffice может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: OLE Automation MSOffice ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
23.04.2024 11:45:06/0.0045270919799805/2