AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie in Excel nur 1 Sheet speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie in Excel nur 1 Sheet speichern?

Ein Thema von madina · begonnen am 6. Nov 2006 · letzter Beitrag vom 6. Nov 2006
Antwort Antwort
madina

Registriert seit: 1. Nov 2005
153 Beiträge
 
#1

Wie in Excel nur 1 Sheet speichern?

  Alt 6. Nov 2006, 07:29
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
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: Wie in Excel nur 1 Sheet speichern?

  Alt 6. Nov 2006, 08:31
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;
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz