Карта сайта 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;

Статья Контролировать Excel, используя OLE раздела Технологии OLE Automation MSOffice может быть полезна для разработчиков на Delphi и FreePascal.


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


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



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


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
19.04.2024 10:32:35/0.0010080337524414/0