Arbeitsblatt zum Schützen und Aufheben des Schutzes

Arbeitsblätter schützen

Wenn ein Arbeitsblatt geschützt ist, sind die Aktionen, die ein Benutzer ausführen kann, eingeschränkt. Sie können beispielsweise keine Daten eingeben, Zeilen oder Spalten einfügen oder löschen usw. Die allgemeinen Schutzoptionen in Microsoft Excel sind:

  • Inhalt
  • Objekte
  • Szenarien

Geschützte Arbeitsblätter verstecken oder schützen sensible Daten nicht und unterscheiden sich daher von der Dateiverschlüsselung. Im Allgemeinen ist der Arbeitsblattschutz für Präsentationszwecke geeignet. Es verhindert, dass der Endbenutzer Daten, Inhalt und Formatierung im Arbeitsblatt ändert.

Schutz hinzufügen oder entfernen

Aspose.Cells bietet eine Klasse,Arbeitsmappe , die eine Microsoft Excel-Datei darstellt. Die Workbook-Klasse enthält eine WorksheetCollection, die den Zugriff auf jedes Arbeitsblatt in einer Excel-Datei ermöglicht. Ein Arbeitsblatt wird durch dargestelltArbeitsblatt Klasse.

Die Worksheet-Klasse stellt dieBeschützen-Methode, mit der ein Arbeitsblatt geschützt wird. Die Protect-Methode akzeptiert die folgenden Parameter:

  • Schutztyp, der auf das Arbeitsblatt anzuwendende Schutztyp. Die Schutzart wird mit Hilfe der angewendetSchutztyp Aufzählung.
  • Neues Passwort, das neue Passwort, das zum Schutz des Arbeitsblatts verwendet wird.
  • Altes Passwort, das alte Passwort, wenn das Arbeitsblatt bereits passwortgeschützt ist. Wenn das Arbeitsblatt noch nicht geschützt ist, übergeben Sie einfach eine Null.

Die ProtectionType-Enumeration enthält die folgenden vordefinierten Schutztypen:

Schutztypen Beschreibung
ALLES Der Benutzer kann nichts auf diesem Arbeitsblatt ändern
INHALT Der Benutzer kann keine Daten in dieses Arbeitsblatt eingeben
OBJEKTE Der Benutzer kann Zeichnungsobjekte nicht ändern
SZENARIEN Der Benutzer kann gespeicherte Szenarien nicht ändern
STRUKTUR Der Benutzer kann die gespeicherte Struktur nicht ändern
FENSTER Der Benutzer kann gespeicherte Fenster nicht ändern
KEINER Kein Schutz

Das folgende Beispiel zeigt, wie Sie ein Arbeitsblatt mit einem Kennwort schützen.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(ProtectingWorksheet.class) + "worksheets/";
// Instantiating a Excel object by excel file path
Workbook excel = new Workbook(dataDir + "book1.xls");
// Accessing the first worksheet in the Excel file
WorksheetCollection worksheets = excel.getWorksheets();
Worksheet worksheet = worksheets.get(0);
Protection protection = worksheet.getProtection();
// The following 3 methods are only for Excel 2000 and earlier formats
protection.setAllowEditingContent(false);
protection.setAllowEditingObject(false);
protection.setAllowEditingScenario(false);
// Protects the first worksheet with a password "1234"
protection.setPassword("1234");
// Saving the modified Excel file in default format
excel.save(dataDir + "ProtectingWorksheet_out.xls");
// Print Message
System.out.println("Sheet protected successfully.");

Nachdem der obige Code zum Schützen des Arbeitsblatts verwendet wurde, überprüfen Sie den Schutz auf dem Arbeitsblatt, indem Sie es öffnen. Sobald Sie die Datei öffnen und versuchen, einige Daten zum Arbeitsblatt hinzuzufügen, wird das folgende Dialogfeld angezeigt:

Eine Dialogwarnung, dass ein Benutzer das Arbeitsblatt nicht ändern kann

todo: Bild_alt_Text

Um das Arbeitsblatt zu bearbeiten, heben Sie den Schutz des Arbeitsblatts auf, indem Sie das auswählenSchutz , dannBlattschutz aufheben von demWerkzeug Menüpunkt wie unten gezeigt.

Wählen Sie den Menüpunkt „Blattschutz aufheben“.

todo: Bild_alt_Text

Ein Dialogfeld wird geöffnet, in dem Sie zur Eingabe eines Kennworts aufgefordert werden.

Geben Sie ein Passwort ein, um den Schutz des Arbeitsblatts aufzuheben

todo: Bild_alt_Text

Schutz einiger weniger Cells

Es kann bestimmte Szenarien geben, in denen Sie nur einige Zellen im Arbeitsblatt sperren müssen. Wenn Sie bestimmte Zellen im Arbeitsblatt sperren möchten, müssen Sie alle anderen Zellen im Arbeitsblatt entsperren. Alle Zellen in einem Arbeitsblatt sind bereits zum Sperren initialisiert, Sie können dies überprüfen, indem Sie eine beliebige Excel-Datei in MS Excel öffnen und auf klickenFormat | Cells… zeigenCells formatieren Dialogfeld und klicken Sie dann auf die Registerkarte Schutz und sehen Sie, dass ein Kontrollkästchen mit der Bezeichnung “Gesperrt” standardmäßig aktiviert ist.

Im Folgenden sind die beiden Ansätze zur Implementierung der Aufgabe aufgeführt.

Methode 1:

Die folgenden Punkte beschreiben, wie Sie mit MS Excel einige Zellen sperren. Diese Methode gilt für Microsoft Office Excel 97, 2000, 2002, 2003 und höhere Versionen.

  1. Wählen Sie das gesamte Arbeitsblatt aus, indem Sie auf die Schaltfläche Alle auswählen klicken (das graue Rechteck direkt über der Zeilennummer für Zeile 1 und links neben dem Spaltenbuchstaben A).
  2. Klicken Sie im Menü Format auf Cells, klicken Sie auf die Registerkarte Schutz, und deaktivieren Sie dann das Kontrollkästchen Gesperrt.

Dadurch werden alle Zellen auf dem Arbeitsblatt entsperrt

  1. Wählen Sie nur die Zellen aus, die Sie sperren möchten, und wiederholen Sie Schritt 2, aktivieren Sie diesmal jedoch das Kontrollkästchen Gesperrt.
  2. Auf derWerkzeug Menü, auswählenSchutz , klickenSchutzblatt , und klicken Sie dann aufOK.

Methode2:

Bei dieser Methode verwenden wir Aspose.Cells API nur, um die Aufgabe zu erledigen.

Das folgende Beispiel zeigt, wie einige Zellen im Arbeitsblatt geschützt werden. Es entsperrt zuerst alle Zellen im Arbeitsblatt und sperrt dann 3 Zellen (A1, B1, C1) darin. Schließlich schützt es das Arbeitsblatt. Eine Zeile/Spalte hat einen Stil API, der außerdem eine festgelegte Locked-Methode enthält. Mit dieser Methode können Sie die Zeile / Spalte sperren oder entsperren.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(ProtectingSpecificCellsinaWorksheet.class) + "worksheets/";
// Create a new workbook.
Workbook wb = new Workbook();
// Create a worksheet object and obtain the first sheet.
Worksheet sheet = wb.getWorksheets().get(0);
// Define the style object.
Style style;
// Define the styleflag object.
StyleFlag flag;
flag = new StyleFlag();
flag.setLocked(true);
// Loop through all the columns in the worksheet and unlock them.
for (int i = 0; i <= 255; i++) {
style = sheet.getCells().getColumns().get(i).getStyle();
style.setLocked(false);
sheet.getCells().getColumns().get(i).applyStyle(style, flag);
}
// Lock the three cells...i.e. A1, B1, C1.
style = sheet.getCells().get("A1").getStyle();
style.setLocked(true);
sheet.getCells().get("A1").setStyle(style);
style = sheet.getCells().get("B1").getStyle();
style.setLocked(true);
sheet.getCells().get("B1").setStyle(style);
style = sheet.getCells().get("C1").getStyle();
style.setLocked(true);
sheet.getCells().get("C1").setStyle(style);
// Save the excel file.
wb.save(dataDir + "PSpecificCellsinaWorksheet_out.xls", FileFormatType.EXCEL_97_TO_2003);
// Print Message
System.out.println("Cells protected successfully.");

Schützen Sie eine Zeile im Arbeitsblatt

Aspose.Cells ermöglicht es Ihnen, jede Zeile im Arbeitsblatt einfach zu sperren. Hier können wir Gebrauch machenapplyStyle() Methode vonReihe Klasse, um Style auf eine bestimmte Zeile im Arbeitsblatt anzuwenden. Diese Methode akzeptiert zwei Argumente: aStil Objekt undStyleFlag struct, die alle Member enthält, die sich auf die angewendete Formatierung beziehen.

Das folgende Beispiel zeigt, wie eine Zeile im Arbeitsblatt geschützt wird. Es entsperrt zuerst alle Zellen im Arbeitsblatt und sperrt dann die erste Zeile darin. Schließlich schützt es das Arbeitsblatt. Eine Zeile/Spalte hat einen Stil API, der außerdem eine setCellLocked-Methode enthält. Sie können die Zeile / Spalte mit der StyleFlag-Struktur sperren oder entsperren.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(ProtectRowWorksheet.class) + "worksheets/";
// Create a new workbook.
Workbook wb = new Workbook();
// Create a worksheet object and obtain the first sheet.
Worksheet sheet = wb.getWorksheets().get(0);
// Define the style object.
Style style;
// Define the styleflag object.
StyleFlag flag;
// Loop through all the columns in the worksheet and unlock them.
for (int i = 0; i <= 255; i++) {
style = sheet.getCells().getRows().get(i).getStyle();
style.setLocked(false);
flag = new StyleFlag();
flag.setLocked(true);
sheet.getCells().getRows().get(i).applyStyle(style, flag);
}
// Get the first Roww style.
style = sheet.getCells().getRows().get(1).getStyle();
// Lock it.
style.setLocked(true);
// Instantiate the flag.
flag = new StyleFlag();
// Set the lock setting.
flag.setLocked(true);
// Apply the style to the first row.
sheet.getCells().getRows().get(1).applyStyle(style, flag);
sheet.protect(ProtectionType.ALL);
// Save the excel file.
wb.save(dataDir + "ProtectRowWorksheet_out.xls", FileFormatType.EXCEL_97_TO_2003);
// Print Message
System.out.println("Row protected successfully.");

Schützen Sie eine Spalte im Arbeitsblatt

Aspose.Cells ermöglicht es Ihnen, jede Spalte im Arbeitsblatt einfach zu sperren. Hier können wir Gebrauch machenapplyStyle() Methode vonSpalte -Klasse, um Style auf eine bestimmte Spalte im Arbeitsblatt anzuwenden. Diese Methode akzeptiert zwei Argumente: aStil Objekt undStyleFlag struct, die alle Member enthält, die sich auf die angewendete Formatierung beziehen.

Das folgende Beispiel zeigt, wie eine Spalte im Arbeitsblatt geschützt wird. Es entsperrt zuerst alle Zellen im Arbeitsblatt und sperrt dann die erste Spalte darin. Schließlich schützt es das Arbeitsblatt. Eine Zeile/Spalte hat einen Stil API, der außerdem eine festgelegte Locked-Methode enthält. Sie können die Zeile / Spalte mit der StyleFlag-Struktur sperren oder entsperren.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(ProtectColumnWorksheet.class) + "worksheets/";
// Create a new workbook.
Workbook wb = new Workbook();
// Create a worksheet object and obtain the first sheet.
Worksheet sheet = wb.getWorksheets().get(0);
// Define the style object.
Style style;
// Define the styleflag object.
StyleFlag flag;
// Loop through all the columns in the worksheet and unlock them.
for (int i = 0; i <= 255; i++) {
style = sheet.getCells().getColumns().get(i).getStyle();
style.setLocked(false);
flag = new StyleFlag();
flag.setLocked(true);
sheet.getCells().getColumns().get(i).applyStyle(style, flag);
}
// Get the first column style.
style = sheet.getCells().getColumns().get(0).getStyle();
// Lock it.
style.setLocked(true);
// Instantiate the flag.
flag = new StyleFlag();
// Set the lock setting.
flag.setLocked(true);
// Apply the style to the first column.
sheet.getCells().getColumns().get(0).applyStyle(style, flag);
sheet.protect(ProtectionType.ALL);
// Save the excel file.
wb.save(dataDir + "PColumnWorksheet_out.xls", FileFormatType.EXCEL_97_TO_2003);
// Print Message
System.out.println("Column protected successfully.");

Heben Sie den Schutz eines Arbeitsblatts auf

Arbeitsblätter schützen undErweiterte Schutzeinstellungen seit Excel XP diskutierten verschiedene Ansätze zum Schutz von Arbeitsblättern. Was ist, wenn ein Entwickler zur Laufzeit den Schutz von einem geschützten Arbeitsblatt entfernen muss, damit einige Änderungen an der Datei vorgenommen werden können? Das geht ganz einfach mit Aspose.Cells.

Mit Microsoft Excel

So entfernen Sie den Schutz von einem Arbeitsblatt:

Von demWerkzeug Menü, auswählenSchutz gefolgt vonBlattschutz aufheben.

Blattschutz aufheben auswählen

todo: Bild_alt_Text

Der Schutz wird entfernt, es sei denn, das Arbeitsblatt ist passwortgeschützt. In diesem Fall fragt ein Dialog nach dem Passwort.

Geben Sie ein Passwort ein, um den Schutz des Arbeitsblatts aufzuheben

todo: Bild_alt_Text

Mit Aspose.Cells

Der Schutz eines Arbeitsblatts kann durch Aufrufen von aufgehoben werdenArbeitsblatt Klasse'Schutz aufheben Methode. DasSchutz aufheben-Methode kann auf zwei Arten verwendet werden, die unten beschrieben werden.

Aufheben des Schutzes eines einfach geschützten Arbeitsblatts

Ein einfach geschütztes Arbeitsblatt ist eines, das nicht mit einem Passwort geschützt ist. Der Schutz solcher Arbeitsblätter kann aufgehoben werden, indem die unprotect-Methode aufgerufen wird, ohne einen Parameter zu übergeben.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(UnprotectingSimplyProtectedWorksheet.class) + "worksheets/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet worksheet = worksheets.get(0);
Protection protection = worksheet.getProtection();
// The following 3 methods are only for Excel 2000 and earlier formats
protection.setAllowEditingContent(false);
protection.setAllowEditingObject(false);
protection.setAllowEditingScenario(false);
// Unprotecting the worksheet
worksheet.unprotect();
// Save the excel file.
workbook.save(dataDir + "USPWorksheet_out.xls", FileFormatType.EXCEL_97_TO_2003);
// Print Message
System.out.println("Worksheet unprotected successfully.");

Schutz eines passwortgeschützten Arbeitsblatts aufheben

Ein passwortgeschütztes Arbeitsblatt ist ein Arbeitsblatt, das mit einem Passwort geschützt ist. Der Schutz solcher Arbeitsblätter kann aufgehoben werden, indem eine überladene Version der Unprotect-Methode aufgerufen wird, die das Kennwort als Parameter akzeptiert.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(UnprotectProtectSheet.class) + "worksheets/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet worksheet = worksheets.get(0);
// Unprotecting the worksheet
worksheet.unprotect("aspose");
// Save the excel file.
workbook.save(dataDir + "UnprotectProtectSheet_out.xls", FileFormatType.EXCEL_97_TO_2003);
// Print Message
System.out.println("Worksheet unprotected successfully.");

Erweiterte Schutzeinstellungen seit Excel XP

Arbeitsblätter schützen besprochen, ein Arbeitsblatt in Microsoft Excel 97 und 2000 zu schützen. Aber seit der Veröffentlichung von Excel 2002 oder XP hat Microsoft viele erweiterte Schutzeinstellungen hinzugefügt. Diese Schutzeinstellungen beschränken oder erlauben Benutzern Folgendes:

  • Zeilen oder Spalten löschen.
  • Bearbeiten Sie Inhalte, Objekte oder Szenarien.
  • Zellen, Zeilen oder Spalten formatieren.
  • Zeilen, Spalten oder Hyperlinks einfügen.
  • Wählen Sie gesperrte oder entsperrte Zellen aus.
  • Verwenden Sie Pivot-Tabellen und vieles mehr.

Aspose.Cells unterstützt alle erweiterten Schutzeinstellungen, die von Excel XP und späteren Versionen angeboten werden.

Erweiterte Schutzeinstellungen mit Excel XP und späteren Versionen

So zeigen Sie die in Excel XP verfügbaren Schutzeinstellungen an:

  1. Von demWerkzeug Menü, auswählenSchutz gefolgt vonSchutzblatt. Ein Dialogfeld wird angezeigt.

Dialog zum Anzeigen von Schutzoptionen in Excel XP

todo: Bild_alt_Text

  1. Erlauben oder beschränken Sie Arbeitsblattfunktionen oder wenden Sie ein Passwort an.

Erweiterte Schutzeinstellungen mit Aspose.Cells

Aspose.Cells unterstützt alle erweiterten Schutzeinstellungen.

Aspose.Cells bietet eine Klasse,Arbeitsmappe , die eine Microsoft Excel-Datei darstellt. Die Workbook-Klasse enthält eine WorksheetCollection-Auflistung, die den Zugriff auf jedes Arbeitsblatt in der Excel-Datei ermöglicht. Ein Arbeitsblatt wird durch dargestelltArbeitsblatt Klasse.

Die Worksheet-Klasse stellt die Protection-Eigenschaft bereit, die zum Anwenden dieser erweiterten Schutzeinstellungen verwendet wird. Das Schutzgut ist in der Tat ein Objekt desSchutz Klasse, die mehrere boolesche Eigenschaften zum Deaktivieren oder Aktivieren von Einschränkungen kapselt.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(AdvancedProtectionSettingsUsingAsposeCells.class) + "worksheets/";
// Instantiating a Workbook object by excel file path
Workbook excel = new Workbook(dataDir + "book1.xlsx");
WorksheetCollection worksheets = excel.getWorksheets();
Worksheet worksheet = worksheets.get(0);
Protection protection = worksheet.getProtection();
// Restricting users to delete columns of the worksheet
protection.setAllowDeletingColumn(false);
// Restricting users to delete row of the worksheet
protection.setAllowDeletingRow(false);
// Restricting users to edit contents of the worksheet
protection.setAllowEditingContent(false);
// Restricting users to edit objects of the worksheet
protection.setAllowEditingObject(false);
// Restricting users to edit scenarios of the worksheet
protection.setAllowEditingScenario(false);
// Restricting users to filter
protection.setAllowFiltering(false);
// Allowing users to format cells of the worksheet
protection.setAllowFormattingCell(true);
// Allowing users to format rows of the worksheet
protection.setAllowFormattingRow(true);
// Allowing users to insert columns in the worksheet
protection.setAllowInsertingColumn(true);
// Allowing users to insert hyperlinks in the worksheet
protection.setAllowInsertingHyperlink(true);
// Allowing users to insert rows in the worksheet
protection.setAllowInsertingRow(true);
// Allowing users to select locked cells of the worksheet
protection.setAllowSelectingLockedCell(true);
// Allowing users to select unlocked cells of the worksheet
protection.setAllowSelectingUnlockedCell(true);
// Allowing users to sort
protection.setAllowSorting(true);
// Allowing users to use pivot tables in the worksheet
protection.setAllowUsingPivotTable(true);
// Saving the modified Excel file Excel XP format
excel.save(dataDir + "APSettingsUsingAsposeCells_out.xls", FileFormatType.EXCEL_97_TO_2003);
// Print Message
System.out.println("Worksheet protected successfully.");

Unten ist eine kleine Beispielanwendung. Es öffnet eine Excel-Datei und verwendet die meisten erweiterten Schutzeinstellungen, die von Excel XP und späteren Versionen unterstützt werden.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(AdvancedProtection.class) + "worksheets/";
// Instantiating a Workbook object by excel file path
Workbook excel = new Workbook(dataDir + "book1.xls");
WorksheetCollection worksheets = excel.getWorksheets();
Worksheet worksheet = worksheets.get(0);
Protection protection = worksheet.getProtection();
// Restricting users to delete columns of the worksheet
protection.setAllowDeletingColumn(false);
// Restricting users to delete row of the worksheet
protection.setAllowDeletingRow(false);
// Restricting users to edit contents of the worksheet
protection.setAllowEditingContent(false);
// Restricting users to edit objects of the worksheet
protection.setAllowEditingObject(false);
// Restricting users to edit scenarios of the worksheet
protection.setAllowEditingScenario(false);
// Restricting users to filter
protection.setAllowFiltering(false);
// Allowing users to format cells of the worksheet
protection.setAllowFormattingCell(true);
// Allowing users to format rows of the worksheet
protection.setAllowFormattingRow(true);
// Allowing users to insert columns in the worksheet
protection.setAllowInsertingColumn(true);
// Allowing users to insert hyperlinks in the worksheet
protection.setAllowInsertingHyperlink(true);
// Allowing users to insert rows in the worksheet
protection.setAllowInsertingRow(true);
// Allowing users to select locked cells of the worksheet
protection.setAllowSelectingLockedCell(true);
// Allowing users to select unlocked cells of the worksheet
protection.setAllowSelectingUnlockedCell(true);
// Allowing users to sort
protection.setAllowSorting(true);
// Allowing users to use pivot tables in the worksheet
protection.setAllowUsingPivotTable(true);
// Saving the modified Excel file Excel XP format
excel.save(dataDir + "AdvancedProtection_out.xls", FileFormatType.EXCEL_97_TO_2003);
// Print Message
System.out.println("Worksheet protected successfully.");

Cell Sperrproblem

Wenn Sie verhindern möchten, dass Benutzer Zellen bearbeiten, müssen die Zellen gesperrt werden, bevor Schutzeinstellungen angewendet werden. Andernfalls können die Zellen bearbeitet werden, auch wenn das Arbeitsblatt geschützt ist. In Microsoft Excel XP können Zellen über den folgenden Dialog gesperrt werden:

Dialog zum Sperren von Zellen in Excel XP

todo: Bild_alt_Text

Es ist auch möglich, Zellen unter der Nummer Aspose.Cells API zu sperren. Jede Zelle hat einen Stil API, der außerdem eine setLocked-Methode enthält. Verwenden Sie es, um Zellen zu sperren oder zu entsperren.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(LockCell.class) + "worksheets/";
// Instantiating a Workbook object by excel file path
Workbook excel = new Workbook(dataDir + "Book1.xlsx");
WorksheetCollection worksheets = excel.getWorksheets();
Worksheet worksheet = worksheets.get(0);
worksheet.getCells().get("A1").getStyle().setLocked(true);
// Saving the modified Excel file Excel XP format
excel.save(dataDir + "LockCell_out.xls", FileFormatType.EXCEL_97_TO_2003);
// Print Message
System.out.println("Cell Locked successfully.");