Фирма 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;
whilenot EmailQuery.Eof dobegin
i := 1;
while i <= EmailQuery.FieldCount dobegin
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.
ОLE Automation для работы с Excel позволяет создавать и форматируровать таблицы в Microsoft Excel из программ на языке Delphi, обеспечивая взаимодействие между приложениями.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS