public final class WorksheetProtectionBlock extends RecordAggregate
See OOO excelfileformat.pdf sec 4.18.2 'Sheet Protection in a Workbook (BIFF5-BIFF8)'
RecordAggregate.PositionTrackingVisitor, RecordAggregate.RecordVisitor
Constructor and Description |
---|
WorksheetProtectionBlock()
Creates an empty WorksheetProtectionBlock
|
Modifier and Type | Method and Description |
---|---|
void |
addRecords(RecordStream rs)
This method reads
WorksheetProtectionBlock records from the supplied RecordStream
until the first non-WorksheetProtectionBlock record is encountered. |
ScenarioProtectRecord |
getHCenter() |
int |
getPasswordHash() |
PasswordRecord |
getPasswordRecord() |
static boolean |
isComponentRecord(int sid) |
boolean |
isObjectProtected() |
boolean |
isScenarioProtected() |
boolean |
isSheetProtected() |
void |
protectSheet(java.lang.String password,
boolean shouldProtectObjects,
boolean shouldProtectScenarios)
protect a spreadsheet with a password (not encrypted, just sets protect
flags and the password.
|
void |
visitContainedRecords(RecordAggregate.RecordVisitor rv)
Visit each of the atomic BIFF records contained in this
RecordAggregate in the order
that they should be written to file. |
getRecordSize, serialize
public WorksheetProtectionBlock()
public static boolean isComponentRecord(int sid)
true
if the specified Record sid is one belonging to
the 'Page Settings Block'.public void visitContainedRecords(RecordAggregate.RecordVisitor rv)
RecordAggregate
RecordAggregate
in the order
that they should be written to file. Implementors may or may not return the actual
Record
s being used to manage POI's internal implementation. Callers should not
assume either way, and therefore only attempt to modify those Record
s after cloningvisitContainedRecords
in class RecordAggregate
rv
- The visitor to use for callbacks while walking this objectpublic PasswordRecord getPasswordRecord()
public ScenarioProtectRecord getHCenter()
public void addRecords(RecordStream rs)
WorksheetProtectionBlock
records from the supplied RecordStream
until the first non-WorksheetProtectionBlock record is encountered. As each record is read,
it is incorporated into this WorksheetProtectionBlock.
As per the OOO documentation, the protection block records can be expected to be written together (with no intervening records), but earlier versions of POI (prior to Jun 2009) didn't do this. Workbooks with sheet protection created by those earlier POI versions seemed to be valid (Excel opens them OK). So PO allows continues to support reading of files with non continuous worksheet protection blocks.
Note - when POI writes out this WorksheetProtectionBlock, the records will always be written in one consolidated block (in the standard ordering) regardless of how scattered the records were when they were originally read.
public void protectSheet(java.lang.String password, boolean shouldProtectObjects, boolean shouldProtectScenarios)
password
- to set. Pass null
to remove all protectionshouldProtectObjects
- are protectedshouldProtectScenarios
- are protectedpublic boolean isSheetProtected()
public boolean isObjectProtected()
public boolean isScenarioProtected()
public int getPasswordHash()
Copyright 2021 The Apache Software Foundation or its licensors, as applicable.