Kurzanleitung:
- Datei.xlsx umbenennen in Datei.zip
- Zip öffnen nach "\xl\worksheets" navigieren
- die gewünschte .XML aus der Zip in einen Windowsordner extrahieren (Sheet1 steht für Tabelle1 usw.)
- extrahierte .XML mit Editor öffnen
- nach sheetProtection suchen, hier entweder
- Passwort mit "0" ersetzen: "password="0" oder:
- Tag <sheetProtection [...] \> komplett löschen
- XML speichern
- XML vom Windowsordner in ZIP-Datei zurückspeichern und vorhandenes Sheet ersetzen
- Datei.zip wieder nach Datei.xlsx umbenennen
- Blattschutz lässt sich nun aufheben bzw. ist schon aufgehoben
Erläuterung (detailierte Anleitung):
Als ich vor die Herausforderung gestellt wurde, aus einem Officedokument den Blattschutz zu entfernen, hätte ich nicht gedacht, dass es so einfach wird, aber das ist es leider/gottseidank. Ich möchte aber darauf hinweisen, dass dieser Trick NUR beim Blattschutz funktioniert, da hier keine Verschlüsselung des Dokuments eingesetzt wird, im Gegensatz z. B. zum Arbeitsmappen-Kennwortschutz (dieser fordert beim Öffnen einer Datei bereits das Passwort, um den Zugriff auf den Inhalt zu gewähren).
Seit Microsoft sein Open XML-Format eingeführt hat (zu erkennen am X am Ende der Dateiendung, als .docx statt .doc oder .xlsx statt .xls), ist die Struktur eines Office-Dokuments eine andere, im Prinzip ist es eine ZIP-Datei, welche XML-Dateien enthält. Dies sieht man in folgemdem Beispiel sehr schön:
Ich habe ein Dokument mit dem Namen "test.xlsx" erstellt und es geöffnet. Mit Rechtsklick auf "Tabelle1" setze ich mit dem Punkt "Blatt schützen" ein Passwort ("test"), welches mir gewährleisten soll, dass ein Benutzer nur Zellen bearbeiten darf, in deren Eigenschaften nicht der "Gesperrt"-Haken gesetzt ist (per Standard ist dieser Haken auf jeder Zelle gesetzt). Nach dem Speichern schließe ich das Dokument, der Schutz ist nun aktiv. Öffne ich die Datei erneut und möchte in einer Zelle einen Schreibvorgang tätigen, wird mir dieser verweigert.
So weit, so gut, nun geht es zum Entfernen des Blattschutzes:
Die Datei "test.xlsx" benenne ich nun in"test.zip" um (die Anezeige von Dateiendungen sollten für den Windowsexplorer natürlich aktiviert sein). Windows beherrscht seit einiger Zeit das ZIP-Format, es ist somit eigentlich kein ZIP-Programm wie WinZIP, WinRAR oder mein OpenSource-Favorit 7zip nötig, sollte es aber beim Öffnen der ZIP Probleme geben, sollte eines der erwähnten Programme verwendet werden. Wie auch immer, die Datei lässt sich nun mit Doppelklick öffnen und offenbart die eigentliche Dateistruktur des Open-XML-Formats. In einem so gut wie nicht formatierten und bearbeiteten Dokument wie meinem sieht die Struktur so aus:
Ordner:Abweichungen sind natürlich möglich.
_rels
docProps
xl
Datei:
[Content_Types].xml
Im Ordner "xl" befindet sich wiederum der Ordner "worksheets", in welchem die Tabellen gelistet werden, "Sheet1.xml" ist somit "Tabelle1" usw.
Die blattgeschützte XML-Datei kopiere ich mir in einen eigenen Windowsordner und öffne sie nun mit einem Editor, wie "Notepad++" (hier wird die Syntax von XML sehr schön farbig dargestellt, die Standardeditoren von Windows "Notepad" und "WordPad" sollten es aber ebenfalls tun).
Nun suche ich in der XML nach der "sheetProtection", in der das Passwort hinterlegt wird. In meinem Beispiel sieht das wie folgt aus:
<sheetProtection password="CBEB" sheet="1" objects="1" scenarios="1"/>
Variante1:
Ich ändere das Passwort in den Gänsefüsschen auf "0" und schon wird aus der Zeile:
<sheetProtection password="0" sheet="1" objects="1" scenarios="1"/>
Variante2:
Wer das möchte, kann aber auch den ganzen Tag von "sheetProtection" entfernen, sollte aber aufpassen, dass er nicht zu viel oder zu wenig entfernt, also von < bis \>!
Der Blattschutz ist nun zwar bei Variante 1 noch aktiv, aber das Passwort ist nun leer und wird beim Aufheben nicht mehr abgefragt.
Nun speichern und anschließend die Datei aus dem Ordner per Drag and Drop in die Zip-Datei, genauer gesagt in den Ordner "worksheets" zurückkopieren und die vorhandene Datei ersetzen. Den Zip-Ordner nun schließen und aus "test.zip" wieder eine "test.xlsx" gemacht und das war es schon. Der Blattschutz lässt sich nun wie gewohnt entfernen, eine Abfrage nach dem Passwort entfällt dabei jedoch, Ziel erreicht (Variante 1).
Hoffe das hilft jemandem,
Snaker
Sehr gute Erklärung, hat mir schnell weitergeholfen :-) Super Arbeit, weiter so..
AntwortenLöschenHat geholfen! Dankeschön ...
AntwortenLöschen