![]() |
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 |
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:
oleExcelApp, oleExcelWorkb, oleExcelSheets1 sind alles variablen vom typ olevariant
//Create .xls / Set Column Format / Create Header
oleExcelApp := CreateOleObject('Excel.Application'); oleExcelWorkb := oleExcelApp.Workbooks.Add; oleExcelSheets1 := oleExcelWorkb.WorkSheets.Add; oleExcelSheets1.Name := 'test sheet 1'; edit natürlich nicht das speicher vergessen ^^ das kann man so machen
Delphi-Quellcode:
/edit
//Save as .xls File
sXlsFile := ChangeFileExt(sFile, '.xls'); Try oleExcelWorkb.Close(true, sXlsFile, False); Except ShowMessage('Save To File Error'); End; ´ 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