Ejemplo n.º 1
0
        internal ExcelVmlDrawingControl AddControl(ExcelControl ctrl, string name)
        {
            XmlNode node = AddControlDrawing(ctrl, name);
            var     draw = new ExcelVmlDrawingControl(_ws, node, NameSpaceManager);

            _drawings.Add(draw);
            _drawingsDict.Add(draw.Id, _drawings.Count - 1);
            return(draw);
        }
Ejemplo n.º 2
0
        protected internal void AddDrawingsFromXml(ExcelWorksheet ws)
        {
            var nodes = VmlDrawingXml.SelectNodes("//v:shape", NameSpaceManager);

            //var list = new List<IRangeID>();
            foreach (XmlNode node in nodes)
            {
                var objectType = node.SelectSingleNode("x:ClientData/@ObjectType", NameSpaceManager)?.Value;
                ExcelVmlDrawingBase vmlDrawing;
                switch (objectType)
                {
                case "Drop":
                case "List":
                case "Button":
                case "GBox":
                case "Label":
                case "Checkbox":
                case "Spin":
                case "Radio":
                case "EditBox":
                case "Dialog":
                    vmlDrawing = new ExcelVmlDrawingControl(_ws, node, NameSpaceManager);
                    _drawings.Add(vmlDrawing);
                    break;

                default:        //Comments
                    var rowNode = node.SelectSingleNode("x:ClientData/x:Row", NameSpaceManager);
                    var colNode = node.SelectSingleNode("x:ClientData/x:Column", NameSpaceManager);
                    int row, col;
                    if (rowNode != null && colNode != null)
                    {
                        row = int.Parse(rowNode.InnerText) + 1;
                        col = int.Parse(colNode.InnerText) + 1;
                    }
                    else
                    {
                        row = 1;
                        col = 1;
                    }
                    vmlDrawing = new ExcelVmlDrawingComment(node, ws.Cells[row, col], NameSpaceManager);
                    _drawings.Add(vmlDrawing);
                    _drawingsCellStore.SetValue(row, col, _drawings.Count - 1);
                    break;
                }
                _drawingsDict.Add(string.IsNullOrEmpty(vmlDrawing.SpId) ? vmlDrawing.Id : vmlDrawing.SpId, _drawings.Count - 1);
            }
        }