![]() |
Datei in EXCEL "schreibgeschützt" öffnen
HI
Habe ein kleines Progrämmchen geschrieben, dass Daten in eine CSV schreibt. (AppendStringToFile) Wenn ich nun aber diese Datei mit EXCEL öffne (ExecuteProgramm) bekomme ich beim Schreibversuch weiterer Daten immer eine Fehlermeldung, dass die Datei schon geöffnet sei. (Isse ja auch ^^) In EXCEL kann man ja eine Datei "schreibgeschützt" öffnen. Kann ich das auch aus meinem Programm heraus z.B. mit ShellExecute machen? Wenn ja wie? Bin beim Suchen (noch) nicht fündig geworden. :gruebel: BTW: AppendStringToFile & ExecuteProgramm: Beide aus der DP :thumb: |
Re: Datei in EXCEL "schreibgeschützt" öffnen
Du könntest auch versuchen einfach via SetFileAttributes das Schreibschutzflag setzen,
vor der Übergabe an Excel, dieses wird von Excel eigentlich beachtet. |
Re: Datei in EXCEL "schreibgeschützt" öffnen
:wall:
Du bist mein Held! Jetzt muss ich nur bevor ich selber wieder rein schreiben will das zurücksetzen :) |
Re: Datei in EXCEL "schreibgeschützt" öffnen
eventuell das Excel per ShellExecuteEx oder CreateProcess starten, dann kannst du dieses überwachen und wenn es z.B. wieder beendet wird, dann das Attribut wieder zurücksetzen.
und vielleicht findet sich ja doch noch ein Parameter, mit welchem man auch den Schreibschutz nur Excel-intern setzen kann. |
Re: Datei in EXCEL "schreibgeschützt" öffnen
Oder einfach selbser die Datei immer geöffnet lassen, mit TFileStream - da kann man ja auch angeben dass andere Lesen aber nicht schrieben dürfen ;)
|
Re: Datei in EXCEL "schreibgeschützt" öffnen
Da ich zyklisch Werte hinzufüge muss ich die Datei auch sofort wieder "freigeben".
@jfheins: jo .. ich fand aber die AppendToFile procedure nice und wollte die so lassen :) Parameter für EXCEL währe fein ... hab ich auch schon gefunden. Zitat:
Interessanterweise habe ich beim beenden (!) meines Programmes wenn ich ExecuteProgramm verwende dauernd eine Fehlermeldung bekommen. Zitat:
EDIT: so btw mal die Lösung:
Delphi-Quellcode:
temp := '/r "'+vDataFileName+'"'; ShellExecute(Application.Handle,'open', 'excel.exe',pchar(temp),nil,sw_show); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 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