skapa diagram i powerpoint ppt C#

Diagram används för att sammanfatta och visuellt representera data i PowerPoint-presentationer. Därför tillhandahåller PowerPoint ett brett utbud av diagramtyper för att visualisera data. Bland alla de mest använda diagramtyperna inkluderar cirkeldiagram, linjediagram, stapeldiagram, histogram, aktiediagram och etc. I den här artikeln kommer du att lära dig hur du skapar dessa diagram i PowerPoint-presentationer med C#.

C# API för att skapa diagram i PowerPoint

Aspose.Slides for .NET är ett C#-klassbibliotek som låter dig skapa och manipulera PowerPoint-presentationer från .NET-applikationer. Dessutom låter API:et dig skapa och lägga till diagram till presentationerna sömlöst. Aspose.Slides för .NET kan laddas ner som DLL eller installeras via NuGet.

PM> Install-Package Aspose.Slides

Skapa kolumndiagram i PowerPoint PPT med C#

I det här avsnittet kommer du att lära dig hur du skapar ett kolumndiagram och lägger till kategorier och serier för att fylla det diagrammet. Följande är stegen för att utföra denna operation.

För demonstration visar följande kodexempel hur man skapar ett kolumndiagram i PowerPoint-presentation med C#.

// Instantiate Presentation-klass som representerar PPTX-fil
Presentation pres = new Presentation();

// Få tillgång till första bilden
ISlide sld = pres.Slides[0];

// Lägg till diagram med standarddata
IChart chart = sld.Shapes.AddChart(ChartType.ClusteredColumn, 0, 0, 500, 500);

// Inställningsdiagram Titel
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// Ställ in första serien på Visa värden
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// Ställa in index för diagramdatabladet
int defaultWorksheetIndex = 0;

// Hämta arbetsbladet för diagramdata
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Ta bort standardgenererade serier och kategorier
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
int s = chart.ChartData.Series.Count;
s = chart.ChartData.Categories.Count;

// Lägger till ny serie
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.Type);

// Lägger till nya kategorier
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"));

// Ta första diagramserien
IChartSeries series = chart.ChartData.Series[0];

// Fyller nu på seriedata
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));

// Ställa in fyllnadsfärg för serier
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = System.Drawing.Color.Blue;


// Ta den andra diagramserien
series = chart.ChartData.Series[1];

// Fyller nu på seriedata
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 2, 30));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 2, 10));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 2, 60));

// Ställa in fyllnadsfärg för serier
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Orange;

// Den första etiketten kommer att visa Kategorinamn
IDataLabel lbl = series.DataPoints[0].Label;
lbl.DataLabelFormat.ShowCategoryName = true;

lbl = series.DataPoints[1].Label;
lbl.DataLabelFormat.ShowSeriesName = true;

// Visa värde för tredje etikett
lbl = series.DataPoints[2].Label;
lbl.DataLabelFormat.ShowValue = true;
lbl.DataLabelFormat.ShowSeriesName = true;
lbl.DataLabelFormat.Separator = "/";

// Spara presentationen med diagram
pres.Save("column-chart.pptx", SaveFormat.Pptx);

Följande är skärmdumpen av det resulterande kolumndiagrammet.

skapa kolumndiagram i powerpoint i C#

Skapa spridningsdiagram i PowerPoint PPT med C#

Följande är stegen för att skapa ett punktdiagram i PowerPoint-presentationen med C#.

  • Skapa en ny presentation med klassen Presentation.
  • Hämta referensen till bilderna i objektet ISlide.
  • Lägg till en ScatterWithSmoothLines-diagramtyp med standarddata och få dess referens i objektet IChart.
  • Öppna arbetsboken för diagramdata till objektet IChartDataWorkbook och rensa standardserien.
  • Lägg till nya serier till diagramdata.
  • Få åtkomst till varje serie till objektet IChartSeries och lägg till datapunkter i serien.
  • Ställ in markören för serien med egenskapen IChartSeries.Marker.
  • Spara presentationen med metoden Presentation.Save(String, SaveFormat).

Följande kodexempel visar hur man skapar ett punktdiagram i PowerPoint-presentationer med C#.

// Instantiate Presentation-klass som representerar PPTX-fil
Presentation pres = new Presentation();

// Få tillgång till första bilden
ISlide sld = pres.Slides[0];

// Lägg till diagram med standarddata
IChart chart = sld.Shapes.AddChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);

// Hämta standarddiagrammets kalkylbladsindex
int defaultWorksheetIndex = 0;

// Hämta arbetsbladet för diagramdata
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Ta bort demoserier
chart.ChartData.Series.Clear();

// Lägg till nya serier
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.Type);

// Ta första diagramserien
IChartSeries series = chart.ChartData.Series[0];

// Lägg till ny punkt (1:3) där.
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 1), fact.GetCell(defaultWorksheetIndex, 2, 2, 3));

// Lägg till ny punkt (2:10)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 2), fact.GetCell(defaultWorksheetIndex, 3, 2, 10));

// Redigera typen av serie
series.Type = ChartType.ScatterWithStraightLinesAndMarkers;

// Ändra diagramseriemarkören
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Star;

// Ta den andra diagramserien
series = chart.ChartData.Series[1];

// Lägg till ny punkt (5:2) där.
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 3, 5), fact.GetCell(defaultWorksheetIndex, 2, 4, 2));

// Lägg till ny punkt (3:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 3, 3), fact.GetCell(defaultWorksheetIndex, 3, 4, 1));

// Lägg till ny punkt (2:2)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 4, 3, 2), fact.GetCell(defaultWorksheetIndex, 4, 4, 2));

// Lägg till ny punkt (5:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 5, 3, 5), fact.GetCell(defaultWorksheetIndex, 5, 4, 1));

// Ändra diagramseriemarkören
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Circle;

// Spara presentationen med diagram
pres.Save("scattered-chart.pptx", SaveFormat.Pptx);

Följande skärmdump visar det resulterande spridningsdiagrammet.

skapa spridda diagram i powerpoint i C#

Skapa cirkeldiagram i PowerPoint PPT med C#

Följande är stegen för att skapa ett cirkeldiagram i en PowerPoint-presentation med C#.

Följande kodexempel visar hur man skapar ett cirkeldiagram i PowerPoint-presentation med C#.

// Instantiate Presentation-klass som representerar PPTX-fil
Presentation presentation = new Presentation();

// Få tillgång till första bilden
ISlide slides = presentation.Slides[0];

// Lägg till diagram med standarddata
IChart chart = slides.Shapes.AddChart(ChartType.Pie, 100, 100, 400, 400);

// Inställningsdiagram Titel
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// Ställ in första serien på Visa värden
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// Ställa in index för diagramdatabladet
int defaultWorksheetIndex = 0;

// Hämta arbetsbladet för diagramdata
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Ta bort standardgenererade serier och kategorier
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();

// Lägger till nya kategorier
chart.ChartData.Categories.Add(fact.GetCell(0, 1, 0, "First Qtr"));
chart.ChartData.Categories.Add(fact.GetCell(0, 2, 0, "2nd Qtr"));
chart.ChartData.Categories.Add(fact.GetCell(0, 3, 0, "3rd Qtr"));

// Lägger till ny serie
IChartSeries series = chart.ChartData.Series.Add(fact.GetCell(0, 0, 1, "Series 1"), chart.Type);

// Fyller nu på seriedata
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));

// Fungerar inte i ny version
// Lägger till nya punkter och ställer in sektorfärg
// series.IsColorVaried = sant;
chart.ChartData.SeriesGroups[0].IsColorVaried = true;

IChartDataPoint point = series.DataPoints[0];
point.Format.Fill.FillType = FillType.Solid;
point.Format.Fill.SolidFillColor.Color = Color.Orange;
// Ställa in sektorgräns
point.Format.Line.FillFormat.FillType = FillType.Solid;
point.Format.Line.FillFormat.SolidFillColor.Color = Color.Gray;
point.Format.Line.Width = 3.0;
//point.Format.Line.Style = LineStyle.ThinThick;
//point.Format.Line.DashStyle = LineDashStyle.DashDot;

IChartDataPoint point1 = series.DataPoints[1];
point1.Format.Fill.FillType = FillType.Solid;
point1.Format.Fill.SolidFillColor.Color = Color.BlueViolet;

// Ställa in sektorgräns
point1.Format.Line.FillFormat.FillType = FillType.Solid;
point1.Format.Line.FillFormat.SolidFillColor.Color = Color.Blue;
point1.Format.Line.Width = 3.0;
//point1.Format.Line.Style = LineStyle.Single;
//point1.Format.Line.DashStyle = LineDashStyle.LargeDashDot;

IChartDataPoint point2 = series.DataPoints[2];
point2.Format.Fill.FillType = FillType.Solid;
point2.Format.Fill.SolidFillColor.Color = Color.YellowGreen;

// Ställa in sektorgräns
point2.Format.Line.FillFormat.FillType = FillType.Solid;
point2.Format.Line.FillFormat.SolidFillColor.Color = Color.Red;
point2.Format.Line.Width = 2.0;
//point2.Format.Line.Style = LineStyle.ThinThin;
//point2.Format.Line.DashStyle = LineDashStyle.LargeDashDotDot;

// Skapa anpassade etiketter för varje kategori för nya serier
IDataLabel lbl1 = series.DataPoints[0].Label;

// lbl.ShowCategoryName = sant;
lbl1.DataLabelFormat.ShowValue = true;

IDataLabel lbl2 = series.DataPoints[1].Label;
lbl2.DataLabelFormat.ShowValue = true;
lbl2.DataLabelFormat.ShowLegendKey = true;
lbl2.DataLabelFormat.ShowPercentage = true;

IDataLabel lbl3 = series.DataPoints[2].Label;
lbl3.DataLabelFormat.ShowSeriesName = true;
lbl3.DataLabelFormat.ShowPercentage = true;

// Visar ledarlinjer för diagram
//series.Labels.DefaultDataLabelFormat.ShowLeaderLines = true;

// Ställa in rotationsvinkel för cirkeldiagramsektorer
chart.ChartData.SeriesGroups[0].FirstSliceAngle = 180;

// Spara presentationen med diagram
presentation.Save("pie-chart.pptx", SaveFormat.Pptx);

Följande är skärmdumpen av det genererade cirkeldiagrammet.

skapa cirkeldiagram i powerpoint i C#

Lägg till histogramdiagram i PowerPoint PPTX med C#

Följande är stegen för att skapa ett histogramdiagram i PowerPoint-presentationer med Aspose.Slides för .NET.

  • Skapa en instans av klassen Presentation.
  • Få en bilds referens i objektet ISlide genom dess index.
  • Lägg till ett histogramdiagram med standarddata.
  • Rensa standardserier och kategorier.
  • Öppna arbetsboken för diagramdata i objektet IChartDataWorkbook.
  • Lägg till nya serier och få dess referens i objektet IChartSeries.
  • Lägg till datapunkter i serien.
  • Ställ in aggregeringstyp för diagramaxeln.
  • Spara presentationen med metoden Presentation.Save(String, SaveFormat).

Följande kodexempel visar hur man skapar ett histogramdiagram med C#.

// Ladda eller skapa presentation
using (Presentation pres = new Presentation())
{
    // Lägg till histogramdiagram
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Histogram, 50, 50, 500, 400);
    chart.ChartData.Categories.Clear();
    chart.ChartData.Series.Clear();

    // Arbetsbok för åtkomst till diagramdata
    IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

    // Rensa arbetsbok
    wb.Clear(0);

    // Lägg till diagramserier
    IChartSeries series = chart.ChartData.Series.Add(ChartType.Histogram);
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A1", 15));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A2", -41));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A3", 16));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A4", 10));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A5", -23));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A6", 16));

    chart.Axes.HorizontalAxis.AggregationType = AxisAggregationType.Automatic;

    // Spara presentationen
    pres.Save("histogram-chart.pptx", SaveFormat.Pptx);
}

Följande är skärmdumpen av det skapade histogramdiagrammet.

skapa histogramdiagram i powerpoint i C#

Skapa ett aktiediagram i PowerPoint med C#

Aktiediagram är också en av de vanligaste diagramtyperna inom PowerPoint-presentationer. Följande är stegen för att skapa ett aktiediagram.

  • Skapa en ny PowerPoint-presentation med klassen Presentation.
  • Skaffa bildens referens i ett ISlide-objekt med hjälp av bildens index.
  • Lägg till OpenHighLowClose-diagrammet till bilden och få dess referens i objektet IChart.
  • Rensa standardserier och kategorier.
  • Få tillgång till sjökortsdata i objektet IChartDataWorkbook.
  • Lägg till nya serier och kategorier i diagrammet.
  • Få åtkomst till varje diagramserie och lägg till datapunkter.
  • Ange HiLowLines-format.
  • Spara presentationen med metoden Presentation.Save(String, SaveFormat).

Följande kodexempel visar hur man lägger till ett aktiediagram till PowerPoint-presentation med C#.

// Ladda eller skapa presentation
using (Presentation pres = new Presentation())
{
    // Lägg till diagram
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);

    // Tydliga kategorier och serier
    chart.ChartData.Series.Clear();
    chart.ChartData.Categories.Clear();

    // Arbetsbok för åtkomst till diagramdata
    IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

    // Lägg till kategorier
    chart.ChartData.Categories.Add(wb.GetCell(0, 1, 0, "A"));
    chart.ChartData.Categories.Add(wb.GetCell(0, 2, 0, "B"));
    chart.ChartData.Categories.Add(wb.GetCell(0, 3, 0, "C"));

    // Lägg till serier
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 1, "Open"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 2, "High"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 3, "Low"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 4, "Close"), chart.Type);

    // Lägg till datapunkter
    IChartSeries series = chart.ChartData.Series[0];

    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 1, 72));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 1, 25));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 1, 38));

    series = chart.ChartData.Series[1];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 2, 172));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 2, 57));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 2, 57));

    series = chart.ChartData.Series[2];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 3, 12));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 3, 12));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 3, 13));

    series = chart.ChartData.Series[3];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 4, 25));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 4, 38));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 4, 50));

    // Ställ in om diagrammet har staplar upp/ned
    chart.ChartData.SeriesGroups[0].UpDownBars.HasUpDownBars = true;

    // Ange hi/low line format
    chart.ChartData.SeriesGroups[0].HiLowLinesFormat.Line.FillFormat.FillType = FillType.Solid;

    foreach (IChartSeries ser in chart.ChartData.Series)
    {
        ser.Format.Line.FillFormat.FillType = FillType.NoFill;
    }

    // Spara presentationen
    pres.Save("stock-chart.pptx", SaveFormat.Pptx);
}

Följande är skärmdumpen av det skapade aktiediagrammet.

skapa aktiediagram i powerpoint i C#

Fler diagramtyper

Utöver de ovan nämnda diagrammen finns det även andra typer av diagram som du kan lägga till i PowerPoint-presentationer. För att läsa mer om de diagramtyper som stöds kan du besöka denna dokumentationsartikeln.

Skaffa en gratis API-licens

Du kan skaffa en gratis tillfällig licens för att prova API:et utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har du lärt dig hur du skapar diagram i PowerPoint-presentationer med C#. Dessutom har steg-för-steg-guiden och kodexemplen visat hur man lägger till kolumndiagram, spridningsdiagram, cirkeldiagram, histogram och aktiediagram. Du kan utforska mer om Aspose.Slides för .NET med hjälp av dokumentation.

Se även