/// <summary>
        /// Add a rich text string
        /// </summary>
        /// <param name="Text">The text to add</param>
        /// <returns></returns>
        public ExcelRichText Add(string Text)
        {
            ConvertRichtext();
            XmlDocument doc;

            if (TopNode is XmlDocument)
            {
                doc = TopNode as XmlDocument;
            }
            else
            {
                doc = TopNode.OwnerDocument;
            }
            var node = doc.CreateElement("d", "r", ExcelPackage.schemaMain);

            TopNode.AppendChild(node);
            var rt = new ExcelRichText(NameSpaceManager, node, this);

            if (_list.Count > 0)
            {
                ExcelRichText prevItem = _list[_list.Count - 1];
                rt.FontName = prevItem.FontName;
                rt.Size     = prevItem.Size;
                if (prevItem.Color.IsEmpty)
                {
                    rt.Color = Color.Black;
                }
                else
                {
                    rt.Color = prevItem.Color;
                }
                rt.PreserveSpace = rt.PreserveSpace;
                rt.Bold          = prevItem.Bold;
                rt.Italic        = prevItem.Italic;
                rt.UnderLine     = prevItem.UnderLine;
            }
            else if (_cells == null)
            {
                rt.FontName = "Calibri";
                rt.Size     = 11;
            }
            else
            {
                var style = _cells.Offset(0, 0).Style;
                rt.FontName       = style.Font.Name;
                rt.Size           = style.Font.Size;
                rt.Bold           = style.Font.Bold;
                rt.Italic         = style.Font.Italic;
                _cells.IsRichText = true;
            }
            rt.Text          = Text;
            rt.PreserveSpace = true;
            if (_cells != null)
            {
                rt.SetCallback(UpdateCells);
                UpdateCells();
            }
            _list.Add(rt);
            return(rt);
        }
        /// <summary>
        /// Adds a new fill to the collection
        /// </summary>
        /// <param name="style">The fill style</param>
        /// <returns>The fill</returns>
        public ExcelDrawingFill Add(eFillStyle style)
        {
            var node = TopNode.OwnerDocument.CreateElement("a", ExcelDrawingFillBasic.GetStyleText(style), ExcelPackage.schemaMain);

            TopNode.AppendChild(node);
            return(new ExcelDrawingFill(null, NameSpaceManager, TopNode, "", SchemaNodeOrder));
        }
        /// <summary>
        /// Adds a new line to the collection
        /// </summary>
        /// <returns>The line</returns>
        public ExcelThemeLine Add()
        {
            var node = TopNode.OwnerDocument.CreateElement("a", "ln", ExcelPackage.schemaMain);

            TopNode.AppendChild(node);
            return(new ExcelThemeLine(NameSpaceManager, TopNode));
        }
Beispiel #4
0
        /// <summary>
        /// Adds a new effect style
        /// </summary>
        /// <returns></returns>
        public ExcelThemeEffectStyle Add()
        {
            var node = TopNode.OwnerDocument.CreateElement("a", "effectStyle", ExcelPackage.schemaMain);

            TopNode.AppendChild(node);
            return(new ExcelThemeEffectStyle(NameSpaceManager, TopNode, "", null, _theme));
        }
Beispiel #5
0
        private void CreateDrawing(string name)
        {
            XmlElement graphFrame = TopNode.OwnerDocument.CreateElement("mc", "AlternateContent", ExcelPackage.schemaMarkupCompatibility);

            graphFrame.SetAttribute("xmlns:mc", ExcelPackage.schemaMarkupCompatibility);
            graphFrame.SetAttribute("xmlns:a14", ExcelPackage.schemaDrawings2010);
            TopNode.AppendChild(graphFrame);
            graphFrame.InnerXml = string.Format("<mc:Choice Requires=\"a14\"><xdr:graphicFrame macro=\"\"><xdr:nvGraphicFramePr><xdr:cNvPr id=\"{0}\" name=\"{2}\"><a:extLst><a:ext uri=\"{{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}}\"><a16:creationId xmlns:a16=\"http://schemas.microsoft.com/office/drawing/2014/main\" id=\"{1}\"/></a:ext></a:extLst></xdr:cNvPr><xdr:cNvGraphicFramePr/></xdr:nvGraphicFramePr><xdr:xfrm><a:off x=\"0\" y=\"0\"/><a:ext cx=\"0\" cy=\"0\"/></xdr:xfrm><a:graphic><a:graphicData uri=\"http://schemas.microsoft.com/office/drawing/2010/slicer\"><sle:slicer xmlns:sle=\"http://schemas.microsoft.com/office/drawing/2010/slicer\" name=\"{2}\"/></a:graphicData></a:graphic></xdr:graphicFrame></mc:Choice><mc:Fallback xmlns=\"\"><xdr:sp macro=\"\" textlink=\"\"><xdr:nvSpPr><xdr:cNvPr id=\"{0}\" name=\"{1}\"/><xdr:cNvSpPr><a:spLocks noTextEdit=\"1\"/></xdr:cNvSpPr></xdr:nvSpPr><xdr:spPr><a:xfrm><a:off x=\"12506325\" y=\"3238500\"/><a:ext cx=\"1828800\" cy=\"2524125\"/></a:xfrm><a:prstGeom prst=\"rect\"><a:avLst/></a:prstGeom><a:solidFill><a:prstClr val=\"white\"/></a:solidFill><a:ln w=\"1\"><a:solidFill><a:prstClr val=\"green\"/></a:solidFill></a:ln></xdr:spPr><xdr:txBody><a:bodyPr vertOverflow=\"clip\" horzOverflow=\"clip\"/><a:lstStyle/><a:p><a:r><a:rPr lang=\"sv-SE\" sz=\"1100\"/><a:t>This shape represents a slicer. Slicers are supported in Excel 2010 or later. If the shape was modified in an earlier version of Excel, or if the workbook was saved in Excel 2003 or earlier, the slicer cannot be used.</a:t></a:r></a:p></xdr:txBody></xdr:sp></mc:Fallback>",
                                                _id,
                                                "{" + Guid.NewGuid().ToString() + "}",
                                                name);
            TopNode.AppendChild(TopNode.OwnerDocument.CreateElement("clientData", ExcelPackage.schemaSheetDrawings));

            _xmlSource = _ws.SlicerXmlSources.GetOrCreateSource(eSlicerSourceType.Table);
            var node = _xmlSource.XmlDocument.CreateElement("slicer", ExcelPackage.schemaMainX14);

            _xmlSource.XmlDocument.DocumentElement.AppendChild(node);
            _slicerXmlHelper = XmlHelperFactory.Create(NameSpaceManager, node);

            var extNode = _ws.GetOrCreateExtLstSubNode(ExtLstUris.WorksheetSlicerPivotTableUri, "x14");

            if (extNode.InnerXml == "")
            {
                extNode.InnerXml = "<x14:slicerList/>";
                var slNode = extNode.FirstChild;

                var xh      = XmlHelperFactory.Create(NameSpaceManager, slNode);
                var element = (XmlElement)xh.CreateNode("x14:slicer", false, true);
                element.SetAttribute("id", ExcelPackage.schemaRelationships, _xmlSource.Rel.Id);
            }

            GetPositionSize();
        }
 internal void Add(ExcelThreadedComment comment)
 {
     _commentList.Add(comment);
     if (TopNode.SelectSingleNode("tc:threadedComment[@id='" + comment.Id + "']", NameSpaceManager) == null)
     {
         TopNode.AppendChild(comment.TopNode);
     }
     RebuildIndex();
 }
Beispiel #7
0
        /// <summary>
        /// Adds an IgnoreError item to the collection
        /// </summary>
        /// <param name="address">The address to add</param>
        /// <returns>The IgnoreError Item</returns>
        public ExcelIgnoredError Add(ExcelAddressBase address)
        {
            var node = _excelWorksheet.WorksheetXml.CreateElement("ignoredError", ExcelPackage.schemaMain);

            TopNode.AppendChild(node);
            var item = new ExcelIgnoredError(_nameSpaceManager, node, address);

            _list.Add(item);
            return(item);
        }
        /// <summary>
        /// Adds a normal font to the collection
        /// </summary>
        /// <param name="typeface">The typeface, or name of the font</param>
        /// <param name="script">The script, or language, in which the typeface is supposed to be used</param>
        /// <returns>The font</returns>
        public ExcelDrawingFont Add(string typeface, string script)
        {
            XmlNode e = TopNode.OwnerDocument.CreateElement("a", "font", ExcelPackage.schemaDrawings);

            TopNode.AppendChild(e);
            var f = new ExcelDrawingFont(NameSpaceManager, e)
            {
                Typeface = typeface, Script = script
            };

            _lst.Add(f);
            return(f);
        }
Beispiel #9
0
        /// <summary>
        /// Adds a mention
        /// </summary>
        /// <param name="person">The <see cref="ExcelThreadedCommentPerson"/> to mention</param>
        /// <param name="textPosition">Index of the first character of the mention in the text</param>
        internal void AddMention(ExcelThreadedCommentPerson person, int textPosition)
        {
            var elem = TopNode.OwnerDocument.CreateElement("mention", ExcelPackage.schemaThreadedComments);

            TopNode.AppendChild(elem);
            var mention = new ExcelThreadedCommentMention(NameSpaceManager, elem);

            mention.MentionId  = ExcelThreadedCommentMention.NewId();
            mention.StartIndex = textPosition;
            // + 1 to include the @ prefix...
            mention.Length          = person.DisplayName.Length + 1;
            mention.MentionPersonId = person.Id;
            _mentionList.Add(mention);
        }
Beispiel #10
0
        string CreateWorkbookRel(string Name, int sheetID, Uri uriWorksheet)
        {
            //Create the relationship between the workbook and the new worksheet
            PackageRelationship rel = _pck.Workbook.Part.CreateRelationship(PackUriHelper.GetRelativeUri(_pck.Workbook.WorkbookUri, uriWorksheet), TargetMode.Internal, ExcelPackage.schemaRelationships + "/worksheet");

            _pck.Package.Flush();

            //Create the new sheet node
            XmlElement worksheetNode = _pck.Workbook.WorkbookXml.CreateElement("sheet", ExcelPackage.schemaMain);

            worksheetNode.SetAttribute("name", Name);
            worksheetNode.SetAttribute("sheetId", sheetID.ToString());
            worksheetNode.SetAttribute("id", ExcelPackage.schemaRelationships, rel.Id);

            TopNode.AppendChild(worksheetNode);
            return(rel.Id);
        }
Beispiel #11
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="worksheet">worksheet that owns the validation</param>
 /// <param name="uid">Uid of the data validation, format should be a Guid surrounded by curly braces.</param>
 /// <param name="itemElementNode">Xml top node (dataValidations) when importing xml</param>
 /// <param name="validationType">Data validation type</param>
 /// <param name="address">address for data validation</param>
 /// <param name="namespaceManager">Xml Namespace manager</param>
 /// <param name="internalValidationType"><see cref="InternalValidationType"/></param>
 internal ExcelDataValidation(ExcelWorksheet worksheet, string uid, string address, ExcelDataValidationType validationType, XmlNode itemElementNode, XmlNamespaceManager namespaceManager, InternalValidationType internalValidationType = InternalValidationType.DataValidation)
     : base(namespaceManager != null ? namespaceManager : worksheet.NameSpaceManager)
 {
     Require.Argument(uid).IsNotNullOrEmpty("uid");
     Require.Argument(address).IsNotNullOrEmpty("address");
     InternalValidationType = internalValidationType;
     InitNodeOrder(validationType);
     address = CheckAndFixRangeAddress(address);
     if (itemElementNode == null)
     {
         TopNode         = worksheet.WorksheetXml.SelectSingleNode(GetTopNodeName(), worksheet.NameSpaceManager);
         itemElementNode = CreateNode(GetItemElementNodeName(), false, true);
         TopNode.AppendChild(itemElementNode);
     }
     TopNode        = itemElementNode;
     ValidationType = validationType;
     Uid            = uid;
     Address        = new ExcelAddress(address);
 }
Beispiel #12
0
        private void CreateNewChart(ExcelDrawings drawings, XmlDocument chartXml = null, eChartType?type = null)
        {
            XmlElement graphFrame = TopNode.OwnerDocument.CreateElement("mc", "AlternateContent", ExcelPackage.schemaMarkupCompatibility);

            graphFrame.SetAttribute("xmlns:mc", ExcelPackage.schemaMarkupCompatibility);
            TopNode.AppendChild(graphFrame);
            graphFrame.InnerXml = string.Format("<mc:Choice xmlns:cx1=\"{1}\" Requires=\"cx1\"><xdr:graphicFrame macro=\"\"><xdr:nvGraphicFramePr><xdr:cNvPr id=\"{0}\" name=\"\"><a:extLst><a:ext uri=\"{{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}}\"><a16:creationId xmlns:a16=\"http://schemas.microsoft.com/office/drawing/2014/main\" id=\"{{9FE3C5B3-14FE-44E2-AB27-50960A44C7C4}}\"/></a:ext></a:extLst></xdr:cNvPr><xdr:cNvGraphicFramePr/></xdr:nvGraphicFramePr><xdr:xfrm><a:off x=\"0\" y=\"0\"/><a:ext cx=\"0\" cy=\"0\"/></xdr:xfrm><a:graphic><a:graphicData uri=\"http://schemas.microsoft.com/office/drawing/2014/chartex\"><cx:chart xmlns:cx=\"http://schemas.microsoft.com/office/drawing/2014/chartex\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:id=\"rId1\"/></a:graphicData></a:graphic></xdr:graphicFrame></mc:Choice><mc:Fallback><xdr:sp macro=\"\" textlink=\"\"><xdr:nvSpPr><xdr:cNvPr id=\"{0}\" name=\"\"/><xdr:cNvSpPr><a:spLocks noTextEdit=\"1\"/></xdr:cNvSpPr></xdr:nvSpPr><xdr:spPr><a:xfrm><a:off x=\"3609974\" y=\"938212\"/><a:ext cx=\"5762625\" cy=\"2743200\"/></a:xfrm><a:prstGeom prst=\"rect\"><a:avLst/></a:prstGeom><a:solidFill><a:prstClr val=\"white\"/></a:solidFill><a:ln w=\"1\"><a:solidFill><a:prstClr val=\"green\"/></a:solidFill></a:ln></xdr:spPr><xdr:txBody><a:bodyPr vertOverflow=\"clip\" horzOverflow=\"clip\"/><a:lstStyle/><a:p><a:r><a:rPr lang=\"en-US\" sz=\"1100\"/><a:t>This chart isn't available in your version of Excel. Editing this shape or saving this workbook into a different file format will permanently break the chart.</a:t></a:r></a:p></xdr:txBody></xdr:sp></mc:Fallback>", _id, GetChartExNameSpace(type ?? eChartType.Sunburst));
            TopNode.AppendChild(TopNode.OwnerDocument.CreateElement("clientData", ExcelPackage.schemaSheetDrawings));

            var package = drawings.Worksheet._package.ZipPackage;

            UriChart = GetNewUri(package, "/xl/charts/chartex{0}.xml");

            if (chartXml == null)
            {
                ChartXml = new XmlDocument
                {
                    PreserveWhitespace = ExcelPackage.preserveWhitespace
                };
                LoadXmlSafe(ChartXml, ChartStartXml(type.Value), Encoding.UTF8);
            }
            else
            {
                ChartXml = chartXml;
            }

            // save it to the package
            Part = package.CreatePart(UriChart, ContentTypes.contentTypeChartEx, _drawings._package.Compression);

            StreamWriter streamChart = new StreamWriter(Part.GetStream(FileMode.Create, FileAccess.Write));

            ChartXml.Save(streamChart);
            streamChart.Close();
            package.Flush();

            var chartRelation = drawings.Part.CreateRelationship(UriHelper.GetRelativeUri(drawings.UriDrawing, UriChart), Packaging.TargetMode.Internal, ExcelPackage.schemaChartExRelationships);

            graphFrame.SelectSingleNode("mc:Choice/xdr:graphicFrame/a:graphic/a:graphicData/cx:chart", NameSpaceManager).Attributes["r:id"].Value = chartRelation.Id;
            package.Flush();
            _chartNode      = ChartXml.SelectSingleNode("cx:chartSpace/cx:chart", NameSpaceManager);
            _chartXmlHelper = XmlHelperFactory.Create(NameSpaceManager, _chartNode);
            GetPositionSize();
        }
Beispiel #13
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="worksheet">worksheet that owns the validation</param>
 /// <param name="itemElementNode">Xml top node (dataValidations) when importing xml</param>
 /// <param name="validationType">Data validation type</param>
 /// <param name="address">address for data validation</param>
 /// <param name="namespaceManager">Xml Namespace manager</param>
 internal ExcelDataValidation(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType, XmlNode itemElementNode, XmlNamespaceManager namespaceManager)
     : base(namespaceManager != null ? namespaceManager : worksheet.NameSpaceManager)
 {
     Require.Argument(address).IsNotNullOrEmpty("address");
     address = CheckAndFixRangeAddress(address);
     if (itemElementNode == null)
     {
         //var xmlDoc = worksheet.WorksheetXml;
         TopNode = worksheet.WorksheetXml.SelectSingleNode("//d:dataValidations", worksheet.NameSpaceManager);
         // did not succeed using the XmlHelper methods here... so I'm creating the new node using XmlDocument...
         var nsUri = NameSpaceManager.LookupNamespace("d");
         //itemElementNode = TopNode.OwnerDocument.CreateElement(_itemElementNodeName, nsUri);
         itemElementNode = TopNode.OwnerDocument.CreateElement(_itemElementNodeName.Split(':')[1], nsUri);
         TopNode.AppendChild(itemElementNode);
     }
     TopNode        = itemElementNode;
     ValidationType = validationType;
     Address        = new ExcelAddress(address);
     Init();
 }
        internal void Generate_dLbls()
        {
            ExcelAddress s = new ExcelAddress(Range);

            int count = s._toRow - s._fromRow + 1;

            List <string> dLblList = new List <string>();

            for (int i = 0; i < count; i++)
            {
                ExcelChartSerieFromCellsDataLabel label = new ExcelChartSerieFromCellsDataLabel(NameSpaceManager, TopNode, _scatterChartSerie, i, Guid.NewGuid().ToString().ToUpper());
            }

            TopNode.InnerXml += "<c:spPr><a:noFill/><a:ln><a:noFill/></a:ln><a:effectLst/></c:spPr><c:dLblPos val=\"ctr\"/><c:showLegendKey val=\"0\"/><c:showVal val=\"0\"/><c:showCatName val=\"0\"/><c:showSerName val=\"0\"/><c:showPercent val=\"0\"/><c:showBubbleSize val=\"0\"/><c:showLeaderLines val=\"0\"/>";

            XmlElement extLst = TopNode.OwnerDocument.CreateElement("c:extLst", ExcelPackage.schemaChart);

            TopNode.AppendChild(extLst);
            extLst.InnerXml = "<c:ext uri=\"{CE6537A1-D6FC-4f65-9D91-7224C49458BB}\" xmlns:c15=\"http://schemas.microsoft.com/office/drawing/2012/chart\"><c15:layout/><c15:showDataLabelsRange val=\"1\"/><c15:showLeaderLines val=\"1\"/></c:ext>";

            string test = "asdf";
        }
Beispiel #15
0
        internal XmlNode Add(int position, string topNodeName)
        {
            XmlElement node;

            if (position >= _autoFilter.Address.Columns)
            {
                throw (new ArgumentOutOfRangeException("Position is outside of the range"));
            }
            if (_columns.ContainsKey(position))
            {
                throw (new ArgumentOutOfRangeException("Position already exists"));
            }
            foreach (var c in _columns.Values)
            {
                if (c.Position > position)
                {
                    node = GetColumnNode(position, topNodeName);
                    return(c.TopNode.ParentNode.InsertBefore(node, c.TopNode));
                }
            }
            node = GetColumnNode(position, topNodeName);
            return(TopNode.AppendChild(node));
        }
        /// <summary>
        /// Adds a special font to the fonts collection
        /// </summary>
        /// <param name="type">The font type</param>
        /// <param name="typeface">The typeface, or name of the font</param>
        /// <returns>The font</returns>
        public ExcelDrawingFontSpecial AddSpecialFont(eFontType type, string typeface)
        {
            string typeName;

            switch (type)
            {
            case eFontType.Complex:
                typeName = "cs";
                break;

            case eFontType.EastAsian:
                typeName = "ea";
                break;

            case eFontType.Latin:
                typeName = "latin";
                break;

            case eFontType.Symbol:
                typeName = "sym";
                break;

            default:
                throw (new ArgumentException("Please use the Add method to add normal fonts"));
            }
            XmlNode e = TopNode.OwnerDocument.CreateElement("a", typeName, ExcelPackage.schemaDrawings);

            TopNode.AppendChild(e);
            var f = new ExcelDrawingFontSpecial(NameSpaceManager, e)
            {
                Typeface = typeface
            };

            _lst.Add(f);
            return(f);
        }
Beispiel #17
0
        private void CreateNewChart(ExcelDrawings drawings, ExcelChart topChart, XmlDocument chartXml = null, eChartType?type = null)
        {
            if (topChart == null)
            {
                XmlElement graphFrame = TopNode.OwnerDocument.CreateElement("graphicFrame", ExcelPackage.schemaSheetDrawings);
                graphFrame.SetAttribute("macro", "");
                TopNode.AppendChild(graphFrame);
                graphFrame.InnerXml = string.Format("<xdr:nvGraphicFramePr><xdr:cNvPr id=\"{0}\" name=\"Chart 1\" /><xdr:cNvGraphicFramePr /></xdr:nvGraphicFramePr><xdr:xfrm><a:off x=\"0\" y=\"0\" /> <a:ext cx=\"0\" cy=\"0\" /></xdr:xfrm><a:graphic><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/chart\"><c:chart xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:id=\"rId1\" />   </a:graphicData>  </a:graphic>", _id);
                TopNode.AppendChild(TopNode.OwnerDocument.CreateElement("clientData", ExcelPackage.schemaSheetDrawings));

                var package = drawings.Worksheet._package.Package;
                UriChart = GetNewUri(package, "/xl/charts/chart{0}.xml");

                if (chartXml == null)
                {
                    ChartXml = new XmlDocument
                    {
                        PreserveWhitespace = ExcelPackage.preserveWhitespace
                    };
                    LoadXmlSafe(ChartXml, ChartStartXml(type.Value), Encoding.UTF8);
                }
                else
                {
                    ChartXml = chartXml;
                }

                // save it to the package
                Part = package.CreatePart(UriChart, "application/vnd.openxmlformats-officedocument.drawingml.chart+xml", _drawings._package.Compression);

                StreamWriter streamChart = new StreamWriter(Part.GetStream(FileMode.Create, FileAccess.Write));
                ChartXml.Save(streamChart);
                streamChart.Close();
                package.Flush();

                var chartRelation = drawings.Part.CreateRelationship(UriHelper.GetRelativeUri(drawings.UriDrawing, UriChart), Packaging.TargetMode.Internal, ExcelPackage.schemaRelationships + "/chart");
                graphFrame.SelectSingleNode("a:graphic/a:graphicData/c:chart", NameSpaceManager).Attributes["r:id"].Value = chartRelation.Id;
                package.Flush();
                _chartNode = ChartXml.SelectSingleNode(string.Format("c:chartSpace/c:chart/c:plotArea/{0}", GetChartNodeText()), NameSpaceManager);
            }
            else
            {
                ChartXml  = topChart.ChartXml;
                Part      = topChart.Part;
                _plotArea = topChart.PlotArea;
                UriChart  = topChart.UriChart;
                _axis     = topChart._axis;

                XmlNode preNode = _plotArea.ChartTypes[_plotArea.ChartTypes.Count - 1].ChartNode;
                _chartNode = ((XmlDocument)ChartXml).CreateElement(GetChartNodeText(), ExcelPackage.schemaChart);
                preNode.ParentNode.InsertAfter(_chartNode, preNode);
                if (topChart.Axis.Length == 0)
                {
                    AddAxis();
                }
                string serieXML = GetChartSerieStartXml(type.Value, int.Parse(topChart.Axis[0].Id), int.Parse(topChart.Axis[1].Id), topChart.Axis.Length > 2 ? int.Parse(topChart.Axis[2].Id) : -1);
                _chartNode.InnerXml = serieXML;
            }
            GetPositionSize();
            if (IsType3D())
            {
                Init3DProperties();
            }
        }
Beispiel #18
0
 private void CreateSelectionElement()
 {
     _selectionNode = TopNode.OwnerDocument.CreateElement("selection", ExcelPackage.schemaMain);
     TopNode.AppendChild(_selectionNode);
     TopNode = _selectionNode;
 }
        /// <summary>
        /// Insert a rich text string at the specified index.
        /// </summary>
        /// <param name="index">The zero-based index at which rich text should be inserted.</param>
        /// <param name="text">The text to insert.</param>
        /// <returns></returns>
        public ExcelRichText Insert(int index, string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                throw new ArgumentException("Text can't be empty", "text");
            }
            ConvertRichtext();
            XmlDocument doc;

            if (TopNode is XmlDocument)
            {
                doc = TopNode as XmlDocument;
            }
            else
            {
                doc = TopNode.OwnerDocument;
            }
            var node = doc.CreateElement("d", "r", ExcelPackage.schemaMain);

            if (index < _list.Count)
            {
                TopNode.InsertBefore(node, TopNode.ChildNodes[index]);
            }
            else
            {
                TopNode.AppendChild(node);
            }
            var rt = new ExcelRichText(NameSpaceManager, node, this);

            if (_list.Count > 0)
            {
                ExcelRichText prevItem = _list[index < _list.Count ? index : _list.Count - 1];
                rt.FontName = prevItem.FontName;
                rt.Size     = prevItem.Size;
                if (prevItem.Color.IsEmpty)
                {
                    rt.Color = Color.Black;
                }
                else
                {
                    rt.Color = prevItem.Color;
                }
                rt.PreserveSpace = rt.PreserveSpace;
                rt.Bold          = prevItem.Bold;
                rt.Italic        = prevItem.Italic;
                rt.UnderLine     = prevItem.UnderLine;
            }
            else if (_cells == null)
            {
                rt.FontName = "Calibri";
                rt.Size     = 11;
            }
            else
            {
                var style = _cells.Offset(0, 0).Style;
                rt.FontName       = style.Font.Name;
                rt.Size           = style.Font.Size;
                rt.Bold           = style.Font.Bold;
                rt.Italic         = style.Font.Italic;
                _cells.IsRichText = true;
            }
            rt.Text          = text;
            rt.PreserveSpace = true;
            if (_cells != null)
            {
                rt.SetCallback(UpdateCells);
                UpdateCells();
            }
            _list.Insert(index, rt);
            return(rt);
        }
Beispiel #20
0
 /// <summary>
 /// Rebuilds the collection with the elements sorted by the property StartIndex.
 /// </summary>
 internal void SortAndAddMentionsToXml()
 {
     _mentionList.Sort((x, y) => x.StartIndex.CompareTo(y.StartIndex));
     TopNode.RemoveAll();
     _mentionList.ForEach(x => TopNode.AppendChild(x.TopNode));
 }