Class WorksheetProtectionBlock


public final class WorksheetProtectionBlock extends RecordAggregate
Groups the sheet protection records for a worksheet.

See OOO excelfileformat.pdf sec 4.18.2 'Sheet Protection in a Workbook (BIFF5-BIFF8)'

Author:
Josh Micich
  • Constructor Details

    • WorksheetProtectionBlock

      public WorksheetProtectionBlock()
      Creates an empty WorksheetProtectionBlock
  • Method Details

    • isComponentRecord

      public static boolean isComponentRecord(int sid)
      Returns:
      true if the specified Record sid is one belonging to the 'Page Settings Block'.
    • visitContainedRecords

      public void visitContainedRecords(RecordAggregate.RecordVisitor rv)
      Description copied from class: RecordAggregate
      Visit each of the atomic BIFF records contained in this RecordAggregate in the order that they should be written to file. Implementors may or may not return the actual Records being used to manage POI's internal implementation. Callers should not assume either way, and therefore only attempt to modify those Records after cloning
      Specified by:
      visitContainedRecords in class RecordAggregate
    • getPasswordRecord

      public PasswordRecord getPasswordRecord()
    • getHCenter

      public ScenarioProtectRecord getHCenter()
    • addRecords

      public void addRecords(RecordStream rs)
      This method reads 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.

    • protectSheet

      public void protectSheet(String password, boolean shouldProtectObjects, boolean shouldProtectScenarios)
      protect a spreadsheet with a password (not encrypted, just sets protect flags and the password.
      Parameters:
      password - to set. Pass null to remove all protection
      shouldProtectObjects - are protected
      shouldProtectScenarios - are protected
    • isSheetProtected

      public boolean isSheetProtected()
    • isObjectProtected

      public boolean isObjectProtected()
    • isScenarioProtected

      public boolean isScenarioProtected()
    • getPasswordHash

      public int getPasswordHash()