Thema: Delphi Excel Rahmen zeichnen

Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Excel Rahmen zeichnen

  Alt 22. Mär 2017, 10:11
Ein paar allgemeine Dinge, die einem das Leben da leichter machen können:
Auch für Workbook und Ranges OLEVariant-Variablen benutzen, und dann deine Formatierungen direkt auf das Range-Objekt anwenden, anstatt immer erst zu Selecten und dann an die Selection zu gehen. Spart Zeit.

Delphi-Quellcode:
procedure TMAin.Xls_To_Color(AXLSFile: string; Zeile : integer; Farbe : string; Text : integer);
const
  xlCellTypeLastCell = $0000000B;
var
  Excel, Sheet: OLEVariant;
  wb, rg: OLEVariant;
  Puffer : string;
  Color : integer;
begin
  deletefile('C:\Users\' + login + '\Documents\RESUME.XLW');
  if farbe = 'Weißthen Color := 0;
  if farbe = 'Rotthen Color := 3;
  if farbe = 'Grünthen Color := 10;
  if farbe = 'Blauthen Color := 41;
  if farbe = 'Gelbthen Color := 6;
  // Create Excel-OLE Object
  Excel := CreateOleObject('Excel.Application');
  try
    // Hide Excel
    Excel.Visible := False;
    // Open the Workbook
    wb := Excel.Workbooks.Open(AXLSFile);
    // Sheet := XLApp.Workbooks[1].WorkSheets[1];
    Sheet := wb.WorkSheets[1];
    //Puffer := inttostr(Zeile+1)+':'+inttostr(Zeile+1);
    //Excel.Range[Puffer].Select;
    rg := Sheet.columns[Zeile+1].EntireColumn
    if text = 1 then rg.Font.colorindex := Color else rg.Interior.ColorIndex := Color;
    // Oberste Zeile Fett und Grau
    //Excel.Range[inttostr(1)+':'+inttostr(1)].Select;
    rg := Sheet.columns[1].EntireColumn
    rg.Font.FontStyle := 'Bold';
    rg.Interior.ColorIndex := 15 ;
    //Rahmen zeichnen
    rg=Excel.Range[Sheet.Cells(1,1),Sheet.Cells(Sheet.UsedRange.Rows.Count,26)]
    //Excel.Range['A1:' + 'AZ' + inttostr(Display.RowCount - 1)].select;
    //Excel.Selection.Borders[xlEdgeLeft].LineStyle := xlContinuous;
  finally
    // Save file and Quit Excel
    if not VarIsEmpty(Excel) then
    begin
      Excel.save;
      Excel.Quit;
      Excel := Unassigned;
      Sheet := Unassigned;
    end;
  end;
end;
Excel-Konstanten wie xlContinuous einfach in Excel nachschauen, was die für einen Wert haben und dann im Programm selber als Const anlegen.
Ralph
  Mit Zitat antworten Zitat