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

Контролировать Excel, используя OLE

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

Контролировать Excel, используя OLE


uses
  ComObj; 

var 
  ExcelApp: OleVariant; 

implementation 


procedure 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'); 
  except 
    try 
      // 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 
  if not VarIsEmpty(ExcelApp) then 
  begin 
    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




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


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


реклама


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

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