Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Распечатать Excel файл

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

Распечатать Excel файл


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 
    if not VarIsEmpty(ExcelApp) then 
    begin 
      ExcelApp.Quit; 
      ExcelApp := Unassigned; 
    end; 
  end; 
end;

Текст, который вы предоставили, является кодом на языке Delphi, использующим технологию COM (Component Object Model) для взаимодействия с Microsoft Excel. Этот код открывает файл Excel, именуемый "xyz.xls", расположенный в каталоге "C:\test\", устанавливает ориентацию страницы в ландшафт и печатает лист.

Вот разбивка каждого элемента кода:

  1. Директива uses ComObj; указывает Delphi включить модуль COM в программу.
  2. Линия procedure TForm1.Button1Click(Sender: TObject); объявляет процедуру, которая будет вызвана при клике кнопки с именем "Button1". Эта процедура является частью формы (TForm1) и параметр Sender - это объект, представляющий контроль, который.triggered событие.
  3. Линия var ExcelApp: OLEVariant; объявляет переменную ExcelApp типа OLEVariant. OLEVariant - это специальный тип данных в Delphi, который может содержать любое OLE-объект (Object Linking and Embedding), включая приложения Excel.
  4. Линия CreateOleObject('Excel.Application'); создает экземпляр приложения Excel с помощью COM. Это эквивалентно запуску Excel вручную.
  5. Блок try...finally обеспечивает закрытие и освобождение приложения Excel, даже если происходит ошибка в коде внутри блока try.
  6. Линия ExcelApp.Workbooks.Open('C:\test\xyz.xls'); открывает указанный файл Excel.
  7. Линия ExcelApp.ActiveSheet.PageSetup.Orientation := xlLandscape; устанавливает ориентацию страницы активного листа в ландшафт.
  8. Линия ExcelApp.Worksheets.PrintOut; печатает листы в книге.

Вот предложенная альтернативная решение:

Вместо использования COM вы можете использовать компонент TExcelFile, предоставляемый модулем SynEdit (который является частью библиотеки Synapse). Этот компонент позволяет программно читать и писать файлы Excel без необходимости взаимодействия с Excel само. Вот пример, как можно изменить ваш код для использования TExcelFile:

uses SynEdit;

procedure TForm1.Button1Click(Sender: TObject);
var
  ExcelFile: TExcelFile;
begin
   // Загружаем файл Excel
  ExcelFile := TExcelFile.Create('C:\test\xyz.xls');

  try
     // Устанавливаем ориентацию страницы в ландшафт
    ExcelFile.PageSetup.Orientation := psLandscape;

     // Печатаем лист
    ExcelFile.Print;
  finally
     // Очищаем
    ExcelFile.Free;
  end;
end;

Код более эффективен и легче использовать, чем оригинальное решение на основе COM, но он требует установки компонента SynEdit в ваш проект Delphi.

В статье описывается как использовать делигат Delphi для печати Excel-файла, создавая инстанцию приложения Excel, открывая файл, настройке страницы и ultimately выведении его на печать.


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

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


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


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:04:07/0.0055921077728271/1