uses ComObj;
procedure TForm1.Button1Click(Sender: TObject);
var
ExcelApp: OLEVariant;
begin// Create an Excel instance // Excel Instanz erzeugen
ExcelApp := CreateOleObject('Excel.Application');
try
ExcelApp.Workbooks.Open('C:\test\xyz.xls');
// you can also modify some settings from PageSetup // Man kann auch noch einige Einstellungen von "Seite Einrichten" anpassen
ExcelApp.ActiveSheet.PageSetup.Orientation := xlLandscape;
// Print it out // Ausdrucken
ExcelApp.Worksheets.PrintOut;
finally// Close Excel // Excel wieder schliessen ifnot VarIsEmpty(ExcelApp) thenbegin
ExcelApp.Quit;
ExcelApp := Unassigned;
end;
end;
end;
Текст, который вы предоставили, является кодом на языке Delphi, использующим технологию COM (Component Object Model) для взаимодействия с Microsoft Excel. Этот код открывает файл Excel, именуемый "xyz.xls", расположенный в каталоге "C:\test\", устанавливает ориентацию страницы в ландшафт и печатает лист.
Вот разбивка каждого элемента кода:
Директива uses ComObj; указывает Delphi включить модуль COM в программу.
Линия procedure TForm1.Button1Click(Sender: TObject); объявляет процедуру, которая будет вызвана при клике кнопки с именем "Button1". Эта процедура является частью формы (TForm1) и параметр Sender - это объект, представляющий контроль, который.triggered событие.
Линия var ExcelApp: OLEVariant; объявляет переменную ExcelApp типа OLEVariant. OLEVariant - это специальный тип данных в Delphi, который может содержать любое OLE-объект (Object Linking and Embedding), включая приложения Excel.
Линия CreateOleObject('Excel.Application'); создает экземпляр приложения Excel с помощью COM. Это эквивалентно запуску Excel вручную.
Блок try...finally обеспечивает закрытие и освобождение приложения Excel, даже если происходит ошибка в коде внутри блока try.
Линия ExcelApp.Workbooks.Open('C:\test\xyz.xls'); открывает указанный файл Excel.
Линия ExcelApp.ActiveSheet.PageSetup.Orientation := xlLandscape; устанавливает ориентацию страницы активного листа в ландшафт.
Линия ExcelApp.Worksheets.PrintOut; печатает листы в книге.
Вот предложенная альтернативная решение:
Вместо использования COM вы можете использовать компонент TExcelFile, предоставляемый модулем SynEdit (который является частью библиотеки Synapse). Этот компонент позволяет программно читать и писать файлы Excel без необходимости взаимодействия с Excel само. Вот пример, как можно изменить ваш код для использования TExcelFile:
Код более эффективен и легче использовать, чем оригинальное решение на основе COM, но он требует установки компонента SynEdit в ваш проект Delphi.
В статье описывается как использовать делигат Delphi для печати Excel-файла, создавая инстанцию приложения Excel, открывая файл, настройке страницы и ultimately выведении его на печать.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.