Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Delphi Excel Sheet Move()

  Alt 22. Aug 2017, 08:13
Hallo zobien123,

hier mal Codefragment um Tabellenblätter an die erste oder letzte Stelle einzufügen. Zum Schluss wird das erste Tabellenblatt auf die letzte Stelle verschoben (Delphi: Berlin / Excel: 2016).

Delphi-Quellcode:
procedure TForm1.btSheetLetzteStelleClick(Sender: TObject);
var
  oExcel: OLEVariant;
  oWB1: OLEVariant;
  oWS1: OLEVariant;
  oWS2: OLEVariant;
  oWS3: OLEVariant;
  oWS4: OLEVariant;
  aFileFormat: integer;

  letzteBlatt: integer;
  strName: String;
begin
  try
    oExcel := CreateOleObject('Excel.Application');
  except
    ShowMessage('Microsoft Excel kann nicht starten.');
    exit;
  end;
  oExcel.Visible:= TRUE;
  // Workbook anlegen
  if (NOT VarIsEmpty(oExcel)) then
  begin
    oWB1:=oExcel.Workbooks.add;
    oExcel.Cells[1,1]:= 'das ist ein Test';
  end;

  if ((NOT VarIsEmpty(oExcel))and(NOT VarIsEmpty(oWB1))) then
  begin
    // Wir legen mal ein neues WorkSheet an, es soll vor den ersten Sheet eingefügt
    // werden
    oWS1:= oWB1.Worksheets.add(before:= oWB1.WorkSheets[1]);
    oWS1.Name:= 'Blatt 1';
    oWS2:= oWB1.Worksheets[2];
    oWS2.Name:= 'Blatt 2';
    oWS2.activate;
    ShowMessage('Blatt 2 aktiviert');
    oWS1.activate;
    ShowMessage('Blatt 1 aktiviert');

    // Wir legen 2 weitere Tabellenblätter an

    oWS3:= oWB1.Worksheets.add(after:= oWB1.WorkSheets[2]);
    oWS3.Name:= 'Blatt 3';
    oWS4:= oWB1.Worksheets.add(after:= oWB1.WorkSheets[3]);
    oWS4.Name:= 'Blatt 4';

    // Das letzte Tabellenblatt ermitteln
    letzteBlatt:= oWB1.WorkSheets.Count;
    ShowMessage('Letztes Blatt: '+inttostr(letzteBlatt));

    // Erstes Tabellenblatt auf die letzte Stelle setzen

    oWB1.Worksheets['Blatt 1'].Move(after:= oWB1.WorkSheets[oWB1.WorkSheets.Count]);
    ShowMessage('Alles klar!');

  end;

 // Ab hier muss alles wieder aufgeräumt werden.
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat