Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie in Excel nur 1 Sheet speichern? (https://www.delphipraxis.net/80262-wie-excel-nur-1-sheet-speichern.html)

madina 6. Nov 2006 07:29


Wie in Excel nur 1 Sheet speichern?
 
Hallo,

mit folgenden SourceCode öffne ich eine mit bestimmten Formaten erstellten Excel Test.xls Datei und speichere ihn aus Delphi aus unter Test1.xls und nehme den Paßwort weg. Dabei besteht die Test.xls aus 3 WorkSheets. ich will aber nur 1 gewählten WorkSheet unter Test1.xls speichern, leider speichert er alle WorkSheets beim Test1.xls.

Wie kann ich dies realisieren ?

Delphi-Quellcode:
var xls, xlw: OleVariant;
try
  xls:= CreateOleObject('Excel.Application');
  xls.Visible:= true;

  xls.WorkBooks.Open(FileName:='c:\Test.xls' , Password:='', ReadOnly:= True);
  xlw:= xls.Sheets[1];
  // speichern unter neuen Namen
  xlw.Protect('', false, false);
  xlw.SaveAs(FileName:= ExtractFileDir('c:\Test1.xls', Pssword:='');
  xls.Application.Quit;

  {unload MS Excel} 
  xls.Quit;
  xlw:= UnAssigned;
  xls:= UnAssigned;
except
  ShowMessage('Excel may not be installed or cannot start');
  Exit;
end

mfg

Andidreas 6. Nov 2006 08:31

Re: Wie in Excel nur 1 Sheet speichern?
 
aloha...

kannst du das nächste mal bitte denn qt alls delphi code posten ;)


du kannst im delphi die worksheets angeben die du erstellen willst und ihnen auch namen geben...
ich machs z.b. so:

Delphi-Quellcode:
//Create .xls / Set Column Format / Create Header
  oleExcelApp := CreateOleObject('Excel.Application');
  oleExcelWorkb := oleExcelApp.Workbooks.Add;
  oleExcelSheets1 := oleExcelWorkb.WorkSheets.Add;                              
  oleExcelSheets1.Name := 'test sheet 1';
oleExcelApp, oleExcelWorkb, oleExcelSheets1 sind alles variablen vom typ olevariant

edit
natürlich nicht das speicher vergessen ^^
das kann man so machen

Delphi-Quellcode:
  //Save as .xls File
  sXlsFile := ChangeFileExt(sFile, '.xls');

  Try
    oleExcelWorkb.Close(true, sXlsFile, False);
  Except
    ShowMessage('Save To File Error');
  End;
/edit
´
dann kann deine normale verarbeitung erfolgen die du mit dem excel machen willst...
am schluss muss halt alles wieder freigegeben werden

Delphi-Quellcode:
  //Excel freigeben
  oleExcelSheets1 := Unassigned;                                              
  oleExcelWorkb := Unassigned;
  oleExcelApp.Quit;
  oleExcelApp := Unassigned;


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz