uses
ComObj;
var
ExcelApp: OleVariant;
implementationprocedure TForm1.Button1Click(Sender: TObject);
const// SheetType
xlChart = -4109;
xlWorksheet = -4167;
// WBATemplate
xlWBATWorksheet = -4167;
xlWBATChart = -4109;
// Page Setup
xlPortrait = 1;
xlLandscape = 2;
xlPaperA4 = 9;
// Format Cells
xlBottom = -4107;
xlLeft = -4131;
xlRight = -4152;
xlTop = -4160;
// Text Alignment
xlHAlignCenter = -4108;
xlVAlignCenter = -4108;
// Cell Borders
xlThick = 4;
xlThin = 2;
var
ColumnRange: OleVariant;
// Function to get the number of Rows in a Certain column function GetLastLine(AColumn: Integer): Integer;
const
xlUp = 3;
begin
Result := OLEConTainer1.OleObject.Range[Char(96 + AColumn) +
IntToStr(65536)].end[xlUp].Rows.Row;
end;
begin{ Start Excel }// By using GetActiveOleObject, you use an instance o// f Word that's already running, // if there is one. try
ExcelApp := GetActiveOleObject('Excel.Application');
excepttry// If no instance of Word is running, try to Create a new Excel Object
ExcelApp := CreateOleObject('Excel.Application');
except
ShowMessage('Cannot start Excel/Excel not installed ?');
Exit;
end;
end;
// Add a new Workbook, Neue Arbeitsmappe offnen
ExcelApp.Workbooks.Add(xlWBatWorkSheet);
// Open a Workbook, Arbeitsmappe offnen
ExcelApp.Workbooks.Open('c:\YourFileName.xls');
// Rename the active Sheet
ExcelApp.ActiveSheet.Name := 'This is Sheet 1';
// Rename
ExcelApp.Workbooks[1].WorkSheets[1].Name := 'This is Sheet 1';
// Insert some Text in some Cells[Row,Col]
ExcelApp.Cells[1, 1].Value := 'SwissDelphiCenter.ch';
ExcelApp.Cells[2, 1].Value := 'http://www.swissdelphicenter.ch';
ExcelApp.Cells[3, 1].Value := FormatDateTime('dd-mmm-yyyy', Now);
// Setting a row of data with one call
ExcelApp.Range['A2', 'D2'].Value := VarArrayOf([1, 10, 100, 1000]);
// Setting a formula
ExcelApp.Range['A11', 'A11'].Formula := '=Sum(A1:A10)';
// Change Cell Alignement
ExcelApp.Cells[2, 1].HorizontalAlignment := xlright;
// Change the Column Width.
ColumnRange := ExcelApp.Workbooks[1].WorkSheets[1].Columns;
ColumnRange.Columns[1].ColumnWidth := 20;
ColumnRange.Columns[2].ColumnWidth := 40;
// Change Rowheight / Zeilenhohe andern:
ExcelApp.Rows[1].RowHeight := 15.75;
// Merge cells, Zellen verbinden:
ExcelApp.Range['B3:D3'].Mergecells := True;
// Apply borders to cells, Zellen umrahmen:
ExcelApp.Range['A14:M14'].Borders.Weight := xlThick; // Think line/ Dicke Linie
ExcelApp.Range['A14:M14'].Borders.Weight := xlThin; // Thin line Dunne Linie // Set Bold Font in cells, Fettdruck in den Zellen
ExcelApp.Range['B16:M26'].Font.Bold := True;
// Set Font Size, Schriftgro?e setzen
ExcelApp.Range['B16:M26'].Font.Size := 12;
//right-aligned Text, rechtsbundige Textausrichtung
ExcelApp.Cells[9, 6].HorizontalAlignment := xlright;
// horizontal-aligned text, horizontale Zentrierung
ExcelApp.Range['B14:M26'].HorizontalAlignment := xlHAlignCenter;
// left-aligned Text, vertikale Zentrierung
ExcelApp.Range['B14:M26'].VerticallyAlignment := xlVAlignCenter;
{ Page Setup }
ExcelApp.ActiveSheet.PageSetup.Orientation := xlLandscape;
// Left, Right Margin (Seitenrander)
ExcelApp.ActiveSheet.PageSetup.LeftMargin := 35;
ExcelApp.ActiveSheet.PageSetup.RightMargin := -15;
// Set Footer Margin
ExcelApp.ActiveSheet.PageSetup.FooterMargin := ExcelApp.InchesToPoints(0);
// Fit to X page(s) wide by Y tall
ExcelApp.ActiveSheet.PageSetup.FitToPagesWide := 1; // Y
ExcelApp.ActiveSheet.PageSetup.FitToPagesTall := 3; // Y // Zoom
ExcelApp.ActiveSheet.PageSetup.Zoom := 95;
// Set Paper Size:
ExcelApp.PageSetup.PaperSize := xlPaperA4;
// Show/Hide Gridlines:
ExcelApp.ActiveWindow.DisplayGridlines := False;
// Set Black & White
ExcelApp.ActiveSheet.PageSetup.BlackAndWhite := False;
// footers
ExcelApp.ActiveSheet.PageSetup.RightFooter := 'Right Footer / Rechte Fu?zeile';
ExcelApp.ActiveSheet.PageSetup.LeftFooter := 'Left Footer / Linke Fu?zeile';
// Show Excel Version:
ShowMessage(Format('Excel Version %s: ', [ExcelApp.Version]));
// Show Excel:
ExcelApp.Visible := True;
// Save the Workbook
ExcelApp.SaveAs('c:\filename.xls');
// Save the active Workbook:
ExcelApp.ActiveWorkBook.SaveAs('c:\filename.xls');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin// Quit Excel ifnot VarIsEmpty(ExcelApp) thenbegin
ExcelApp.DisplayAlerts := False; // Discard unsaved files....
ExcelApp.Quit;
end;
end;
Программа на языке Delphi использует интерфейс автоматизации OLE (Object Linking and Embedding) для управления экземпляром приложения Microsoft Excel. Программа создает новый файл Excel, вставляет текст в ячейки, устанавливает параметры форматирования, такие как размер шрифта и выравнивание, и сохраняет файл.
Вот разбивка кода:
Клауза uses включает модуль ComObj, который предоставляет функциональность для работы с объектами OLE.
В секции var объявлены несколько переменных, включая ExcelApp, которая является экземпляром объекта приложения Excel.
Секция implementation содержит два процедура:
Button1Click: эта процедура вызывается при клике кнопки на форме. Она создает новый файл Excel, вставляет текст в ячейки, устанавливает параметры форматирования и сохраняет файл.
FormDestroy: эта процедура вызывается при уничтожении формы. Она закрывает приложение Excel, если оно еще работает.
Код использует различные константы и эnum для управления поведением Excel, такие как:
* xlChart и xlWorksheet: эти константы представляют типы объектов Excel (график или таблица).
* xlWBATWorksheet и xlWBATChart: эти константы представляют типы шаблонов файлов Excel.
* xlPortrait, xlLandscape и xlPaperA4: эти константы представляют ориентации бумаги и размеры.
* xlBottom, xlLeft, xlRight и xlTop: эти константы представляют параметры выравнивания ячеек.
* xlHAlignCenter и xlVAlignCenter: эти константы представляют параметры выравнивания текста.
* xlThick и xlThin: эти константы представляют веса границ.
Код также использует несколько функций для взаимодействия с Excel, такие как:
* GetLastLine: эта функция возвращает количество строк в указанной колонке.
* VarArrayOf: эта функция создает массив вариантов.
Некоторые заметные особенности этого кода включают:
* Использование OLE-автоматизации для управления поведением Excel.
* Создание нового файла Excel и вставка текста в ячейки.
* Установка параметров форматирования, таких как размер шрифта, выравнивание и границы.
* Сохранение файла Excel.
* Закрытие приложения Excel при уничтожении формы.
В целом, этот код предоставляет хороший пример использования OLE-автоматизации для управления Microsoft Excel из Delphi.
Контролировать Excel с помощью OLE: статья предлагает пример кода на Delphi, демонстрирующий работу с Microsoft Excel через Object Linking and Embedding (OLE).
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.