コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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));
        }
コード例 #3
0
        /// <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));
        }
コード例 #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));
        }
コード例 #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();
        }
コード例 #6
0
 internal void Add(ExcelThreadedComment comment)
 {
     _commentList.Add(comment);
     if (TopNode.SelectSingleNode("tc:threadedComment[@id='" + comment.Id + "']", NameSpaceManager) == null)
     {
         TopNode.AppendChild(comment.TopNode);
     }
     RebuildIndex();
 }
コード例 #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);
        }
コード例 #8
0
        /// <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);
        }
コード例 #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);
        }
コード例 #10
0
ファイル: ExcelWorksheets.cs プロジェクト: okevin/chama
        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);
        }
コード例 #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);
 }
コード例 #12
0
ファイル: ExcelChartEx.cs プロジェクト: mmsgau/EPPlus-1
        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();
        }
コード例 #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();
 }
コード例 #14
0
        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";
        }
コード例 #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));
        }
コード例 #16
0
        /// <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);
        }
コード例 #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();
            }
        }
コード例 #18
0
 private void CreateSelectionElement()
 {
     _selectionNode = TopNode.OwnerDocument.CreateElement("selection", ExcelPackage.schemaMain);
     TopNode.AppendChild(_selectionNode);
     TopNode = _selectionNode;
 }
コード例 #19
0
        /// <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);
        }
コード例 #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));
 }