internal SLSheetProtection Clone()
        {
            var sp = new SLSheetProtection();

            sp.AlgorithmName             = AlgorithmName;
            sp.HashValue                 = HashValue;
            sp.SaltValue                 = SaltValue;
            sp.SpinCount                 = SpinCount;
            sp.Password                  = Password;
            sp.Sheet                     = Sheet;
            sp.bAllowEditObjects         = bAllowEditObjects;
            sp.bAllowEditScenarios       = bAllowEditScenarios;
            sp.bAllowFormatCells         = bAllowFormatCells;
            sp.bAllowFormatColumns       = bAllowFormatColumns;
            sp.bAllowFormatRows          = bAllowFormatRows;
            sp.bAllowInsertColumns       = bAllowInsertColumns;
            sp.bAllowInsertRows          = bAllowInsertRows;
            sp.bAllowInsertHyperlinks    = bAllowInsertHyperlinks;
            sp.bAllowDeleteColumns       = bAllowDeleteColumns;
            sp.bAllowDeleteRows          = bAllowDeleteRows;
            sp.bAllowSelectLockedCells   = bAllowSelectLockedCells;
            sp.bAllowSort                = bAllowSort;
            sp.bAllowAutoFilter          = bAllowAutoFilter;
            sp.bAllowPivotTables         = bAllowPivotTables;
            sp.bAllowSelectUnlockedCells = bAllowSelectUnlockedCells;

            return(sp);
        }
        internal SLWorksheet(List <Color> ThemeColors, List <Color> IndexedColors, double ThemeDefaultColumnWidth,
                             long ThemeDefaultColumnWidthInEMU, int MaxDigitWidth, List <double> ColumnStepSize,
                             double CalculatedDefaultRowHeight)
        {
            ForceCustomRowColumnDimensionsSplitting = false;

            ActiveCell = new SLCellPoint(1, 1);

            SheetViews = new List <SLSheetView>();

            IsDoubleColumnWidth   = false;
            SheetFormatProperties = new SLSheetFormatProperties(ThemeDefaultColumnWidth, ThemeDefaultColumnWidthInEMU,
                                                                MaxDigitWidth, ColumnStepSize, CalculatedDefaultRowHeight);

            RowProperties    = new Dictionary <int, SLRowProperties>();
            ColumnProperties = new Dictionary <int, SLColumnProperties>();
            Cells            = new Dictionary <SLCellPoint, SLCell>();

            HasSheetProtection = false;
            SheetProtection    = new SLSheetProtection();

            HasAutoFilter = false;
            AutoFilter    = new SLAutoFilter();

            MergeCells = new List <SLMergeCell>();

            ConditionalFormattings     = new List <SLConditionalFormatting>();
            ConditionalFormattings2010 = new List <SLConditionalFormatting2010>();

            DataValidations = new List <SLDataValidation>();
            DataValidationDisablePrompts = false;
            DataValidationXWindow        = null;
            DataValidationYWindow        = null;

            Hyperlinks = new List <SLHyperlink>();

            PageSettings = new SLPageSettings(ThemeColors, IndexedColors);

            RowBreaks    = new Dictionary <int, SLBreak>();
            ColumnBreaks = new Dictionary <int, SLBreak>();

            DrawingId = string.Empty;
            NextWorksheetDrawingId = 2;
            Pictures = new List <SLPicture>();
            Charts   = new List <SLChart>();

            InitializeBackgroundPictureStuff();

            LegacyDrawingId = string.Empty;
            Authors         = new List <string>();
            Comments        = new Dictionary <SLCellPoint, SLComment>();

            Tables = new List <SLTable>();

            SparklineGroups = new List <SLSparklineGroup>();
        }