// Bei der Datenübergabe an MS-Excel muss man beachten, dass Formate
// in deutscher Form
(z.B. '[Blau]0,0'), Formeln aber in englischer Form
// übergeben werden müssen
(z.B. 'AVERAGE' anstelle von 'MITTELWERT').

// Getestet mit D4 unter XP

var xcl, wkb, oleArray: OleVariant; 
 
procedure TForm1.Button3Click(Sender: TObject); 
begin 
  xcl := createOleObject('Excel.Application'); 
  wkb := xcl.workbooks.add; 
  OleArray := VarArrayCreate([0, 4], varVariant); 
 
  OleArray[0] := -1234.5;   // wird rot, weil < 0 
  OleArray[1] := 0;         // wird blau, weil = 0,0 
  OleArray[2] := 'Versuch'; // wird grün
  OleArray[3] := 4.7E-2;    // nicht blau, weil > 0 (obwohl 0,0 angezeigt wird)
  OleArray[4] := True;      // wird "WAHR"
  xcl.Range['B3', 'F3'].Value := OleArray; 

  xcl.Range['D3'].Font.Color := ColorToRGB(clGreen);  // 'Versuch'
  xcl.Range['D3'].Font.Italic := True;

  xcl.Range['G3'].Value := 987.6; 
 
  xcl.Range['H3'].Value := 'Summe'; 
  xcl.Range['H4'].Formula := '=SUM(B3:G3)'; 
  xcl.Range['H5'].Value := 'Mittelwert'; 
  xcl.Range['H6'].Formula := '=AVERAGE(B3:G3)'; 
  xcl.Range['H7'].Value := 'Höchstwert'; 
  xcl.Range['H8'].Formula := '=MAX(B3:G3)'; 
  xcl.Range['H9'].Value := 'niedrigster Wert'; 
  xcl.Range['H10'].Formula := '=MIN(B3:G3)'; 
 
  xcl.Range['B3:H10'].NumberFormat := '#.##0,0;[Rot]-#.##0,0;[Blau]0,0'; 
  xcl.Range['B3:H10'].HorizontalAlignment := -4152;  // rechtsbündig 
  xcl.Range['B3:H10'].Columns.AutoFit;   // Spaltenbreite optimieren
  xcl.Range['H6'].Select; 
  xcl.Selection.NumberFormat := '#.##0,00000;[Rot]-#.##0,00000'; 
  xcl.Range['A1'].Select; 
 
  wkb.SaveAs('C:\Test.xls'); 
  xcl.visible := true; 
end; 


procedure TForm1.FormDestroy(Sender: TObject); 
begin 
  if not VarIsEmpty(xcl) then xcl.quit; 
end; 



Zugriffe seit 6.9.2001 auf Delphi-Ecke