Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schreibschutz in Excel (https://www.delphipraxis.net/39171-schreibschutz-excel.html)

XHelp 29. Jan 2005 19:00


Schreibschutz in Excel
 
Hallo!

Ich muss mittels delphi eine Excel mappe schreibgeschützt machen. Ich habe zwar verstanden, wie man mit OLE eine xls datei öffnet, aber wie kann ich schreibschutz draufmachen?

Danke!

Keldorn 29. Jan 2005 19:58

Re: Schreibschutz in Excel
 
wie immer in solchen sachen: ein makro aufzeichnen ;)

Delphi-Quellcode:
procedure TForm1.Button_ExcelSchutzClick(Sender: TObject);
Var flcid:Cardinal;
    _bool,_password:olevariant;
begin
  flcid:=GetUserDefaultLCID;
  try
    ExcelApplication1.Connect;
    ExcelApplication1.Visible[flcid]:=true;
    ExcelApplication1.UserControl:=true;

    ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);
    ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets.Item[1] as ExcelWorkSheet);

    //excel-Tabellenblatt schützen, vieles ist optional, auch das password
    _bool:=true;
    _password:='Passwort';
    ExcelWorksheet1.Protect(_password,_bool,_bool,_bool);
    //oder, ohne die workbooks und worksheets (die beiden connects kannst du dir sparen)
    //(ExcelApplication1.ActiveSheet as ExcelWorkSheet).Protect(_password,_bool,_bool,_bool,emptyparam,flcid);
    //Schutz aufheben
    //ExcelWorksheet1.unProtect(_password);

    ExcelWorksheet1.Disconnect;
    ExcelWorkbook1.Disconnect;
    ExcelApplication1.Disconnect;
  except
  end;
end;
Mfg Frank

XHelp 29. Jan 2005 20:31

Re: Schreibschutz in Excel
 
Danke!

XHelp 29. Jan 2005 21:07

Re: Schreibschutz in Excel
 
Hab mich zu früh gefreut... Es sind nicht genug parameter da. Mein quelltext:

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
xls, xlw: Variant;
begin
{load MS Excel}
xls := CreateOLEObject('Excel.Application');

{open your xls-file}
xlw := xls.WorkBooks.Open(FileName := 'c:\book1.xls', Password := '', ReadOnly := True);
{save with other file name}
xlw.Protect('lala',true,true,true);
xlw.SaveAs(FileName := 'c:\book3.xls', Password := 'test');

{unload MS Excel}
xlw := UnAssigned;
xls := UnAssigned;

end;
Aber wenn ich auf den Button klicken, tritt ein fehler auf.
Welche paremeter gibts bzw. wo kann ich das nachgucken?

Danke!

Keldorn 29. Jan 2005 21:09

Re: Schreibschutz in Excel
 
mein Bsp war für die Serverkompos.

bei welcher Zeile tritt der Fehler auf?

XHelp 29. Jan 2005 21:16

Re: Schreibschutz in Excel
 
xlw.Protect('lala',true,true,true);

Er sagt: "Falsche anzahl von parameter"

Keldorn 29. Jan 2005 21:28

Re: Schreibschutz in Excel
 
das was ich oben gezeigt habe, war der Blattschutz, das was du jetzt hast, ist der arbeitmappenschutz.
Delphi-Quellcode:
xlw.Protect('lala',true,true);
Zitat:

Welche paremeter gibts bzw. wo kann ich das nachgucken?
in der VB hilfe.
bei den arbeitmappen hat protect nur 3 parameter.

Mfg Frank

XHelp 29. Jan 2005 21:34

Re: Schreibschutz in Excel
 
Ja, mit 3 klappt es, aber:
Er fragt das passwort gleich beim laden ab und es muss ja nur schreibgeschützt sein
Wenn ich lala eingeben, dann sagt er mir: falsches kennwort.

Keldorn 29. Jan 2005 21:41

Re: Schreibschutz in Excel
 
Zitat:

Zitat von XHelp
Ja, mit 3 klappt es, aber:
Er fragt das passwort gleich beim laden ab und es muss ja nur schreibgeschützt sein
Wenn ich lala eingeben, dann sagt er mir: falsches kennwort.

Zitat:

test
du hinterlegst beim speichern "test" als passwort. Dann bekommst du die Datei gar nicht erst auf. Schützt du nur die Mappe, kannst du dir sie wenigstens noch anschauen. mit dem Blattschutz (meine obige variante) könntest du auch Teilbereiche schützen, der Nutzer könnte dann nur in bestimmte Zellen Werte eintragen, ist auch recht nützlich.
Du kannst eine Excel-mappe in verschiedenster Art und Weise schützen ;)

wenn du nur einen Schreibschutz willst, nimm den arbeitsmappenschutz oder Blattschutz

XHelp 30. Jan 2005 12:25

Re: Schreibschutz in Excel
 
Zitat:

Zitat von Keldorn
du hinterlegst beim speichern "test" als passwort. Dann bekommst du die Datei gar nicht erst auf.

wall: :wall: :wall: bin ich blö.... ähh... unaufmerksam ^__^
Zitat:

Zitat von Keldorn
Schützt du nur die Mappe, kannst du dir sie wenigstens noch anschauen. mit dem Blattschutz (meine obige variante) könntest du auch Teilbereiche schützen, der Nutzer könnte dann nur in bestimmte Zellen Werte eintragen, ist auch recht nützlich.

ich probiere es mal... aber wie kann ich eine datei aussuchen? Ich muss so um die 80 dateien schreibgeschützt machen...

Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 Uhr.
Seite 1 von 2  1 2      

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