圖表用於總結和直觀地表示 PowerPoint 演示文稿中的數據。因此,PowerPoint 提供了多種圖表類型來可視化數據。其中,最常用的圖表類型包括餅圖、折線圖、條形圖、直方圖、股票圖等。在本文中,您將學習如何使用 C# 在 PowerPoint 演示文稿中創建這些圖表。
- 用於在 PowerPoint 中創建圖表的 C# API
- 使用 C# 在 PowerPoint 中創建柱形圖
- 使用 C# 在 PowerPoint 中創建散點圖
- 使用 C# 在 PowerPoint 中添加餅圖
- 使用 C# 在 PowerPoint 中添加直方圖圖表
- 使用 C# 在 PowerPoint 中創建股票圖表
- 獲取免費的 API 許可證
用於在 PowerPoint 中創建圖表的 C# API
Aspose.Slides for .NET 是一個 C# 類庫,可讓您在 .NET 應用程序中創建和操作 PowerPoint 演示文稿。此外,API 允許您無縫地創建圖表並將其添加到演示文稿中。 Aspose.Slides for .NET 可以作為 DLL 下載或通過 NuGet 安裝。
PM> Install-Package Aspose.Slides
使用C#在PowerPoint PPT中創建柱形圖
在本節中,您將學習如何創建柱形圖並添加類別和系列來填充該圖表。以下是執行此操作的步驟。
- 首先,創建 Presentation 類的一個實例。
- 獲取 ISlide 對像中幻燈片的引用。
- 添加具有默認數據的 ClusteredColumn 圖表,並在 IChart 對像中獲取其引用。
- 使用 IChart.ChartTitle.AddTextFrameForOverriding(String) 方法設置圖表標題並設置其屬性。
- 將圖表數據工作簿訪問到 IChartDataWorkbook 對像中。
- 分別使用 IChart.ChartData.Series.Clear() 和 IChart.ChartData.Categories.Clear() 方法從圖表數據中清除所有默認系列和類別。
- 添加新系列和類別。
- 將每個圖表系列訪問到 IChartSeries 對像中並向其添加數據點。
- 為圖表系列添加填充顏色並設置標籤。
- 最後,使用 Presentation.Save(String, SaveFormat) 方法保存演示文稿。
為了進行演示,以下代碼示例展示瞭如何使用 C# 在 PowerPoint 演示文稿中創建柱形圖。
// 實例化表示 PPTX 文件的 Presentation 類
Presentation pres = new Presentation();
// 訪問第一張幻燈片
ISlide sld = pres.Slides[0];
// 添加具有默認數據的圖表
IChart chart = sld.Shapes.AddChart(ChartType.ClusteredColumn, 0, 0, 500, 500);
// 設置圖表標題
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;
// 將第一個系列設置為顯示值
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;
// 設置圖表數據表索引
int defaultWorksheetIndex = 0;
// 獲取圖表數據工作表
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;
// 刪除默認生成的系列和類別
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
int s = chart.ChartData.Series.Count;
s = chart.ChartData.Categories.Count;
// 添加新系列
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);
// 添加新類別
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"));
// 獲取第一個圖表系列
IChartSeries series = chart.ChartData.Series[0];
// 現在填充系列數據
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));
// 設置系列的填充顏色
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = System.Drawing.Color.Blue;
// 採取第二個圖表系列
series = chart.ChartData.Series[1];
// 現在填充系列數據
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));
// 設置系列的填充顏色
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Orange;
// 第一個標籤將顯示類別名稱
IDataLabel lbl = series.DataPoints[0].Label;
lbl.DataLabelFormat.ShowCategoryName = true;
lbl = series.DataPoints[1].Label;
lbl.DataLabelFormat.ShowSeriesName = true;
// 顯示第三個標籤的值
lbl = series.DataPoints[2].Label;
lbl.DataLabelFormat.ShowValue = true;
lbl.DataLabelFormat.ShowSeriesName = true;
lbl.DataLabelFormat.Separator = "/";
// 用圖表保存演示文稿
pres.Save("column-chart.pptx", SaveFormat.Pptx);
下面是生成的柱形圖的截圖。
使用C#在PowerPoint PPT中創建散點圖
以下是使用 C# 在 PowerPoint 演示文稿中創建散點圖的步驟。
- 使用 Presentation 類創建一個新的演示文稿。
- 獲取 ISlide 對像中幻燈片的引用。
- 添加具有默認數據的 ScatterWithSmoothLines 圖表類型,並在 IChart 對像中獲取其引用。
- 將圖表數據工作簿訪問到 IChartDataWorkbook 對象並清除默認系列。
- 向圖表數據添加新系列。
- 將每個系列訪問 IChartSeries 對象並將數據點添加到系列。
- 使用 IChartSeries.Marker 屬性設置系列的標記。
- 使用 Presentation.Save(String, SaveFormat) 方法保存演示文稿。
以下代碼示例演示如何使用 C# 在 PowerPoint 演示文稿中創建散點圖。
// 實例化表示 PPTX 文件的 Presentation 類
Presentation pres = new Presentation();
// 訪問第一張幻燈片
ISlide sld = pres.Slides[0];
// 添加具有默認數據的圖表
IChart chart = sld.Shapes.AddChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);
// 獲取默認圖表數據工作表索引
int defaultWorksheetIndex = 0;
// 獲取圖表數據工作表
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;
// 刪除演示系列
chart.ChartData.Series.Clear();
// 添加新系列
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);
// 獲取第一個圖表系列
IChartSeries series = chart.ChartData.Series[0];
// 在那裡添加新點 (1:3)。
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 1), fact.GetCell(defaultWorksheetIndex, 2, 2, 3));
// 添加新點 (2:10)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 2), fact.GetCell(defaultWorksheetIndex, 3, 2, 10));
// 編輯系列類型
series.Type = ChartType.ScatterWithStraightLinesAndMarkers;
// 更改圖表系列標記
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Star;
// 採取第二個圖表系列
series = chart.ChartData.Series[1];
// 在那裡添加新點 (5:2)。
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 3, 5), fact.GetCell(defaultWorksheetIndex, 2, 4, 2));
// 添加新點 (3:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 3, 3), fact.GetCell(defaultWorksheetIndex, 3, 4, 1));
// 添加新點 (2:2)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 4, 3, 2), fact.GetCell(defaultWorksheetIndex, 4, 4, 2));
// 添加新點 (5:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 5, 3, 5), fact.GetCell(defaultWorksheetIndex, 5, 4, 1));
// 更改圖表系列標記
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Circle;
// 用圖表保存演示文稿
pres.Save("scattered-chart.pptx", SaveFormat.Pptx);
以下屏幕截圖顯示了生成的散點圖。
使用 C# 在 PowerPoint PPT 中創建餅圖
以下是使用 C# 在 PowerPoint 演示文稿中創建餅圖的步驟。
- 使用 Presentation 類創建一個新的演示文稿。
- 獲取 ISlide 對像中幻燈片的引用。
- 添加具有默認數據的餅圖類型,並在 IChart 對像中獲取其引用。
- 使用 IChart.ChartTitle.AddTextFrameForOverriding(String) 方法設置圖表標題並設置其屬性。
- 設置值的可見性。
- 分別使用 IChart.ChartData.Series.Clear() 和 IChart.ChartData.Categories.Clear() 方法清除默認系列和類別。
- 將圖表數據工作簿訪問到 IChartDataWorkbook 對像中。
- 將圖表數據的新類別添加到 IChart.ChartData.Categories 集合中。
- 將新系列添加到圖表數據到 IChart.ChartData.Series 集合中。
- 將每個系列獲取到 IChartSeries 對像中,並將數據點添加到系列中。
- 將每個數據點訪問到 IChartDataPoint 對象並設置其格式。
- 使用 IDataLabel 對象訪問數據點中的數據標籤並設置其格式。
- 設置引出線和旋轉角度。
- 使用 Presentation.Save(String, SaveFormat) 方法保存演示文稿。
以下代碼示例演示如何使用 C# 在 PowerPoint 演示文稿中創建餅圖。
// 實例化表示 PPTX 文件的 Presentation 類
Presentation presentation = new Presentation();
// 訪問第一張幻燈片
ISlide slides = presentation.Slides[0];
// 添加具有默認數據的圖表
IChart chart = slides.Shapes.AddChart(ChartType.Pie, 100, 100, 400, 400);
// 設置圖表標題
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;
// 將第一個系列設置為顯示值
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;
// 設置圖表數據表索引
int defaultWorksheetIndex = 0;
// 獲取圖表數據工作表
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;
// 刪除默認生成的系列和類別
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
// 添加新類別
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"));
// 添加新系列
IChartSeries series = chart.ChartData.Series.Add(fact.GetCell(0, 0, 1, "Series 1"), chart.Type);
// 現在填充系列數據
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));
// 在新版本中不起作用
// 添加新點並設置扇區顏色
// series.IsColorVaried = true;
chart.ChartData.SeriesGroups[0].IsColorVaried = true;
IChartDataPoint point = series.DataPoints[0];
point.Format.Fill.FillType = FillType.Solid;
point.Format.Fill.SolidFillColor.Color = Color.Orange;
// 設置扇區邊界
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;
// 設置扇區邊界
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;
// 設置扇區邊界
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;
// 為新系列的每個類別創建自定義標籤
IDataLabel lbl1 = series.DataPoints[0].Label;
// lbl.ShowCategoryName = true;
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;
// 顯示圖表的引導線
//series.Labels.DefaultDataLabelFormat.ShowLeaderLines = true;
// 設置餅圖扇區的旋轉角度
chart.ChartData.SeriesGroups[0].FirstSliceAngle = 180;
// 用圖表保存演示文稿
presentation.Save("pie-chart.pptx", SaveFormat.Pptx);
下面是生成的餅圖的截圖。
使用 C# 在 PowerPoint PPTX 中添加直方圖圖表
以下是使用 Aspose.Slides for .NET 在 PowerPoint 演示文稿中創建直方圖的步驟。
- 創建 Presentation 類的實例。
- 通過索引獲取幻燈片在 ISlide 對像中的引用。
- 添加具有默認數據的直方圖圖表。
- 清除默認系列和類別。
- 訪問 IChartDataWorkbook 對像中的圖表數據工作簿。
- 添加新系列並在 IChartSeries 對像中獲取其引用。
- 向系列中添加數據點。
- 設置圖表軸的聚合類型。
- 使用 Presentation.Save(String, SaveFormat) 方法保存演示文稿。
以下代碼示例顯示瞭如何使用 C# 創建直方圖圖表。
// 加載或創建演示文稿
using (Presentation pres = new Presentation())
{
// 添加直方圖圖表
IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Histogram, 50, 50, 500, 400);
chart.ChartData.Categories.Clear();
chart.ChartData.Series.Clear();
// 訪問圖表數據工作簿
IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;
// 清除工作簿
wb.Clear(0);
// 添加圖表系列
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;
// 保存演示文稿
pres.Save("histogram-chart.pptx", SaveFormat.Pptx);
}
下面是創建的柱狀圖圖表的截圖。
使用 C# 在 PowerPoint 中創建股票圖表
股票圖表也是 PowerPoint 演示文稿中常用的圖表類型之一。以下是創建股票圖表的步驟。
- 使用 Presentation 類創建一個新的 PowerPoint 演示文稿。
- 使用幻燈片的索引在 ISlide 對像中獲取幻燈片的引用。
- 將 OpenHighLowClose 圖表添加到幻燈片並在 IChart 對像中獲取其引用。
- 清除默認系列和類別。
- 訪問 IChartDataWorkbook 對像中的圖表數據。
- 向圖表添加新系列和類別。
- 訪問每個圖表系列並添加數據點。
- 指定 HiLowLines 格式。
- 使用 Presentation.Save(String, SaveFormat) 方法保存演示文稿。
以下代碼示例顯示如何使用 C# 將股票圖表添加到 PowerPoint 演示文稿。
// 加載或創建演示文稿
using (Presentation pres = new Presentation())
{
// 添加圖表
IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);
// 清除類別和系列
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
// 訪問圖表數據工作簿
IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;
// 添加類別
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"));
// 添加系列
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);
// 添加數據點
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));
// 設置圖表是否有上/下柱
chart.ChartData.SeriesGroups[0].UpDownBars.HasUpDownBars = true;
// 指定高/低行格式
chart.ChartData.SeriesGroups[0].HiLowLinesFormat.Line.FillFormat.FillType = FillType.Solid;
foreach (IChartSeries ser in chart.ChartData.Series)
{
ser.Format.Line.FillFormat.FillType = FillType.NoFill;
}
// 保存演示文稿
pres.Save("stock-chart.pptx", SaveFormat.Pptx);
}
以下是創建的股票圖表的屏幕截圖。
更多圖表類型
除了上述圖表之外,您還可以將其他類型的圖表添加到 PowerPoint 演示文稿中。要閱讀有關支持的圖表類型的更多信息,您可以訪問 this 文檔文章。
獲取免費的 API 許可證
您可以獲得免費的臨時許可證,以便在不受評估限制的情況下試用 API。
結論
在本文中,您了解瞭如何使用 C# 在 PowerPoint 演示文稿中創建圖表。此外,分步指南和代碼示例還展示瞭如何添加柱形圖、散點圖、餅圖、直方圖和股票圖。您可以使用 文檔 探索更多關於 Aspose.Slides for .NET 的信息。