Esempio n. 1
0
        public static void supprChart(WorksheetPart worksheetPart, string titre)
        {
            DrawingsPart a = worksheetPart.DrawingsPart;

            DrawingsPart            dp  = worksheetPart.DrawingsPart;
            IEnumerable <ChartPart> cps = a.ChartParts;

            ChartPart b = null;

            foreach (ChartPart cp in cps)
            {
                if (cp.ChartSpace.Descendants <Chart.Chart>().First().Descendants <Chart.Title>().First().Descendants <DocumentFormat.OpenXml.Drawing.Run>().First().Text.Text == titre)
                {
                    b = cp;
                }
            }

            //obtention id du modèle
            string id = a.GetIdOfPart(b);

            a.DeletePart(b);

            //Suppression de l'ancre associée
            DocumentFormat.OpenXml.Drawing.Spreadsheet.WorksheetDrawing wsd = a.WorksheetDrawing;
            foreach (Draw.TwoCellAnchor tca in wsd.Elements <Draw.TwoCellAnchor>())
            {
                string tmp = tca.Descendants <Chart.ChartReference>().First().Id;
                if (tmp == id)
                {
                    tca.Remove();
                }
            }
        }