Beispiel #1
0
        public XlsxWorkbook(ZipWorker zipWorker)
        {
            _zipWorker = zipWorker;

            ReadWorkbook();
            ReadWorkbookRels();
            ReadSharedStrings();
            ReadStyles();
        }
        public XlsxWorksheet(ZipWorker document, XlsxWorkbook workbook, XlsxBoundSheet refSheet)
        {
            Document = document;
            Workbook = workbook;

            Name         = refSheet.Name;
            Id           = refSheet.Id;
            Rid          = refSheet.Rid;
            VisibleState = refSheet.VisibleState;
            Path         = refSheet.Path;

            ReadWorksheetGlobals();
        }
Beispiel #3
0
        public XlsxWorksheet(ZipWorker document, XlsxWorkbook workbook, XlsxBoundSheet refSheet)
        {
            Document = document;
            Workbook = workbook;

            Name             = refSheet.Name;
            Id               = refSheet.Id;
            Rid              = refSheet.Rid;
            VisibleState     = refSheet.VisibleState;
            Path             = refSheet.Path;
            DefaultRowHeight = 12.75; // 255 twips

            ReadWorksheetGlobals();
        }
        public XlsxWorkbook(ZipWorker zipWorker)
        {
            _defaultDateTimeStyles = new List <int>(new[]
            {
                14, 15, 16, 17, 18, 19, 20, 21, 22, 45, 46, 47
            });

            _zipWorker = zipWorker;

            ReadWorkbook();
            ReadWorkbookRels();
            ReadSharedStrings();
            ReadStyles();

            CheckDateTimeNumFmts(Styles.NumFmts);
        }
Beispiel #5
0
        public XlsxWorksheet(ZipWorker document, XlsxWorkbook workbook, SheetRecord refSheet)
        {
            Document = document;
            Workbook = workbook;

            Name             = refSheet.Name;
            Id               = refSheet.Id;
            Rid              = refSheet.Rid;
            VisibleState     = refSheet.VisibleState;
            Path             = refSheet.Path;
            DefaultRowHeight = 15;

            if (string.IsNullOrEmpty(Path))
            {
                return;
            }

            using var sheetStream = Document.GetWorksheetReader(Path);
            if (sheetStream == null)
            {
                return;
            }

            int rowIndexMaximum    = int.MinValue;
            int columnIndexMaximum = int.MinValue;

            List <Column>    columnWidths = new List <Column>();
            List <CellRange> cellRanges   = new List <CellRange>();

            bool inSheetData = false;

            Record record;

            while ((record = sheetStream.Read()) != null)
            {
                switch (record)
                {
                case SheetDataBeginRecord _:
                    inSheetData = true;
                    break;

                case SheetDataEndRecord _:
                    inSheetData = false;
                    break;

                case RowHeaderRecord row when inSheetData:
                    rowIndexMaximum = Math.Max(rowIndexMaximum, row.RowIndex);
                    break;

                case CellRecord cell when inSheetData:
                    columnIndexMaximum = Math.Max(columnIndexMaximum, cell.ColumnIndex);
                    break;

                case ColumnRecord column:
                    columnWidths.Add(column.Column);
                    break;

                case SheetFormatPrRecord sheetFormatProperties:
                    if (sheetFormatProperties.DefaultRowHeight != null)
                    {
                        DefaultRowHeight = sheetFormatProperties.DefaultRowHeight.Value;
                    }
                    break;

                case SheetPrRecord sheetProperties:
                    CodeName = sheetProperties.CodeName;
                    break;

                case MergeCellRecord mergeCell:
                    cellRanges.Add(mergeCell.Range);
                    break;

                case HeaderFooterRecord headerFooter:
                    HeaderFooter = headerFooter.HeaderFooter;
                    break;
                }
            }

            ColumnWidths = columnWidths.ToArray();
            MergeCells   = cellRanges.ToArray();

            if (rowIndexMaximum != int.MinValue && columnIndexMaximum != int.MinValue)
            {
                FieldCount = columnIndexMaximum + 1;
                RowCount   = rowIndexMaximum + 1;
            }
        }