示例#1
0
        private void WriteSheetViewProperties(OpenExcelSheetViewProperties sheetViewProperties)
        {
            if (sheetViewProperties == default)
            {
                return;
            }

            // Write the start element fot SheetViews
            _workSheetWriter.WriteStartElement(new SheetViews());
            {
                // Write the start element for Sheetiew with attributes
                _workSheetWriter.WriteStartElement(new SheetView(), new List <OpenXmlAttribute> {
                    new OpenXmlAttribute("workbookViewId", null, "0")
                });
                {
                    // Write the start element for Pane
                    _workSheetWriter.WriteStartElement(new Pane(), new List <OpenXmlAttribute>
                    {
                        new OpenXmlAttribute("xSplit", null, sheetViewProperties.PaneProperties.XSplit.ToString()),
                        new OpenXmlAttribute("ySplit", null, sheetViewProperties.PaneProperties.YSplit.ToString()),
                        new OpenXmlAttribute("topLeftCell", null, sheetViewProperties.PaneProperties.TopLeftCell),
                        new OpenXmlAttribute("state", null, sheetViewProperties.PaneProperties.State),
                    });
                    // Write end element for Pane
                    _workSheetWriter.WriteEndElement();
                }
                // Write end element for Sheetview
                _workSheetWriter.WriteEndElement();
            }

            // Write end element for Sheetviews
            _workSheetWriter.WriteEndElement();
        }
        ISheetBuilder IExcelBuilder.InsertSheetWithFirstRowFrozenAs(string sheetName, OpenExcelSheetProperties sheetProperties, OpenExcelSheetFormatProperties sheetFormatProperties)
        {
            var sheetViewProperties = new OpenExcelSheetViewProperties
            {
                PaneProperties = new OpenExcelSheetViewPaneProperties
                {
                    XSplit = 0, YSplit = 1, TopLeftCell = "A2", State = PaneStateValues.FrozenSplit
                }
            };

            (this as IExcelBuilder).InsertSheetAs(sheetName, sheetProperties, sheetViewProperties, sheetFormatProperties);

            return(this);
        }
        ISheetBuilder ISheetBuilder.InsertSheetAs(string sheetName, OpenExcelSheetProperties sheetProperties, OpenExcelSheetViewProperties sheetViewProperties, OpenExcelSheetFormatProperties sheetFormatProperties)
        {
            _api.WriteEndSheet();

            (this as IExcelBuilder).InsertSheetAs(sheetName, sheetProperties, sheetViewProperties, sheetFormatProperties);

            return(this);
        }
示例#4
0
        /// <summary>
        /// Starts writing sheet element
        /// </summary>
        /// <param name="sheetName"> Name of the Sheet. Empty or null sheet name will result in default sheet name.</param>
        /// <param name="sheetProperties"></param>
        /// <param name="sheetViewProperties"></param>
        public void WriteStartSheet(string sheetName = default, OpenExcelSheetProperties sheetProperties = default, OpenExcelSheetViewProperties sheetViewProperties = default, OpenExcelSheetFormatProperties sheetFormatProperties = default)
        {
            _colCharacterLengths.Clear();

            _rowIdx = _rowIdxReset;
            var wsPart = _xl.WorkbookPart.AddNewPart <WorksheetPart>();

            uint newSheetId = _newSheetId;

            _workBookWriter.WriteElement(new Sheet()
            {
                Name    = (string.IsNullOrWhiteSpace(sheetName)) ? $"Sheet{newSheetId}" : sheetName,
                SheetId = newSheetId,
                Id      = _xl.WorkbookPart.GetIdOfPart(wsPart)
            });

            _workSheetWriter = OpenXmlWriter.Create(wsPart);
            _workSheetWriter.WriteStartElement(new Worksheet());

            WriteSheetProperties(sheetProperties);

            WriteSheetViewProperties(sheetViewProperties);

            WriteSheetFormatProperties(sheetFormatProperties);

            _workSheetWriter.WriteStartElement(new SheetData());
        }