Creare un grafico con excel epplus

qui è che cosa ho. Ho un foglio di excel con due colonne.
Colonna 1 aveva descrizioni di leggenda, come Categoria 1 Categoria 2 ecc.
Colonna 2 ha i numeri con conteggio totale come 6,4,18 etc.

Categoria Contare

Categoria 1 6

Categoria 2 4

Category3 18

Ho bisogno di visualizzare un grafico con i valori di conteggio e visualizzare i nomi delle categorie per ogni linea.
Ho provato diversi valori ma non riesco a capire.
Ecco la mia attuale codice

        ExcelChart ec = (ExcelLineChart)chartSheet.Drawings.AddChart("chart_1",      
                        eChartType.Line);
            ec.SetPosition(1, 0, 3, 0);
            ec.SetSize(800, 300);
            var ran1 = chartSheet.Cells["A4:A6];
            var ran2 = workSheet.Cells["0:0"];

            var serie1 = (ExcelChartSerie)ec.Series.Add(ran1, ran2);
            serie1.Header = chartSheet.Cells["A3"].Value.ToString();

            ran1 = chartSheet.Cells["B4:B6];
            var serie2 = ec.Series.Add(ran1, ran2);
            serie2.Header = chartSheet.Cells["B3"].Value.ToString();

            var xml = ec.ChartXml;
            var lst = xml.GetElementsByTagName("c:lineChart");
            foreach (System.Xml.XmlNode item in lst[0].ChildNodes) {
                if (item.Name.Equals("ser")) {
                    foreach (System.Xml.XmlNode subitem in item.ChildNodes) {
                        if (subitem.Name.Equals("c:cat")) {
                            item.RemoveChild(subitem);
                            break;
                        }
                    }
                }
            }

Questo mi dà una linea con i conti, ma non visualizza i nomi delle categorie come avrei voluto.

Grazie in anticipo per l’eventuale risposta.

OriginaleL’autore Steve Ed | 2015-04-30

One Reply
  1. 9

    Nevermind, ho manipolato un po ‘ e ha trovato la risposta

    Ecco il codice funzionante

    ExcelChart chart = chartSheet.Drawings.AddChart("FindingsChart",
    OfficeOpenXml.Drawing.Chart.eChartType.ColumnClustered);
    chart.Title.Text = "Category Chart";
    chart.SetPosition(1, 0, 3, 0);
    chart.SetSize(800, 300);
    var ser1 = (ExcelChartSerie)(chart.Series.Add(workSheet.Cells["B4:B6"],
    workSheet.Cells["A4:A6"]));
    ser1.Header = "Category";
    come creare serie “Y” e l’uso (0, 1, …, N) come “valori di X”?

    OriginaleL’autore Steve Ed

Lascia un commento