Thema: Delphi Excel Rahmen zeichnen

Einzelnen Beitrag anzeigen

Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#1

Excel Rahmen zeichnen

  Alt 22. Mär 2017, 09:37
Moin zusammen,

ich habe ein kleines Problem in Delphi.

Ich mache bisher folgendes (funktioniert 1A):
- Exceldatei einlesen
- Spalten/Zeilen löschen
- Speichern
- Dann Einfärben, Schrift ändern, autoadjust

Wo ich aber partou nicht weiter komme, ist Rahmenlinien zu zeichnen. Ich habe schon einiges versucht was man so alles über die Google-Suche etc finden kann. Aber leider ohne erfolg, da ich in uses kein ExcelXP, Excel97 oder ähnliches einfügen kann.

Hängt das evtl. mit Delphi 10.1 starter zusammen?
Hat jemand eine Idee ohne die das in uses zu verwenden es hin zu bekommen?

Die Prozedur für das einfärben sieht so aus und durch die fehlende uses kennt er halt xlcontinous etc. nicht.:
Code:
//Exceldatei einfärben
procedure TMAin.Xls_To_Color(AXLSFile: string; Zeile : integer; Farbe : string; Text : integer);
const
  xlCellTypeLastCell = $0000000B;
var
  Excel, Sheet: OLEVariant;
  Puffer : string;
  Color : integer;
begin
  deletefile('C:\Users\' + login + '\Documents\RESUME.XLW');
  if farbe = 'Weiß' then Color := 0;
  if farbe = 'Rot' then Color := 3;
  if farbe = 'Grün' then Color := 10;
  if farbe = 'Blau' then Color := 41;
  if farbe = 'Gelb' then Color := 6;
  // Create Excel-OLE Object
  Excel := CreateOleObject('Excel.Application');
  try
    // Hide Excel
    Excel.Visible := False;
    // Open the Workbook
    Excel.Workbooks.Open(AXLSFile);
    // Sheet := XLApp.Workbooks[1].WorkSheets[1];
    Sheet := Excel.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1];
    Puffer := inttostr(Zeile+1)+':'+inttostr(Zeile+1);
    Excel.Range[Puffer].Select;
    if text = 1 then Excel.Selection.Font.colorindex := Color else Excel.Selection.Interior.ColorIndex := Color;
    // Oberste Zeile Fett und Grau
    Excel.Range[inttostr(1)+':'+inttostr(1)].Select;
    Excel.Selection.Font.FontStyle := 'Bold';
    Excel.Selection.Interior.ColorIndex := 15 ;
    //Rahmen zeichnen
    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;
Schon mal besten Dank vorab.
  Mit Zitat antworten Zitat