PowerPoint スライドにグラフを作成することは、複雑な情報を視覚的に表現し、聴衆が重要な洞察を理解しやすくするための強力な方法です。Excel データを直接読み取ってグラフを生成することで、データ入力プロセスを効率化し、データの正確性を確保できます。また、Excel ファイルからのチャートを PowerPoint プレゼンテーションに直接画像として挿入することで、元の書式や外観を最大限に活かすことも可能です。本記事では、.NET プログラム内で Spire.Office for .NET を使用して、Excel データから PowerPoint スライドにグラフを作成する方法をご紹介します。
Spire.Office for .NET をインストールします
まず、Spire.Office for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.Office
Excel データで PowerPoint スライドにグラフを作成する
開発者は、Spire.XLS for .NET を使用して Excel ワークシートからデータを読み取り、そのデータをグラフのデータソースとして使用して、Spire.Presentation for .NET で PowerPoint スライドにグラフを作成することができます。Excel ファイルのデータを使用して PowerPoint プレゼンテーションにグラフを作成するための詳細な手順は以下のとおりです:
- Presentation クラスのインスタンスを作成します。
- Workbook クラスのインスタンスを作成し、Workbook.LoadFromFile() メソッドを使用して Excel ファイルをロードします。
- Presentation.Slides[] プロパティを介してプレゼンテーション内の最初のスライドを取得し、ISlide.Shapes.AppendChart() メソッドを使用してプレゼンテーションの最初のスライドにグラフを作成します。
- IChart.ChartData.Clear() メソッドを使用して、デフォルトのダミーデータをクリアします。
- Workbook.Worksheets[] プロパティを使用して、ブック内の最初のワークシートを取得します。
- ワークシート内の行と列を順に繰り返し処理します:
- Worksheet.AllocatedRange[].Value2 プロパティを介してワークシート内のセル値を取得し、それらを IChart.ChartData[].Value プロパティを介してグラフのデータ値として設定します。
- IChart.ChartTitle プロパティを使用してグラフタイトルを設定します。
- IChart.Series.SeriesLabel および IChart.Categories.CategoryLabels プロパティを介して、グラフのシリーズラベルとカテゴリラベルを設定します。
- IChart.Series[].Values プロパティを介してシリーズの値を設定します。
- IChart.PrimaryCategoryAxis.NumberFormat およびIChart.PrimaryValueAxis.NumberFormat プロパティを使用して、軸の数値形式を設定します。
- IChart.ChartStyle プロパティを使用してグラフのスタイルを設定します。
- Presentation.SaveToFile() メソッドを使用してプレゼンテーションを保存します。
- C#
using Spire.Presentation;
using Spire.Presentation.Charts;
using Spire.Xls;
using System.Drawing;
using FileFormat = Spire.Presentation.FileFormat;
using IChart = Spire.Presentation.Charts.IChart;
namespace PresentationChartExcelData
{
class Program
{
public static void Main(string[] args)
{
// Presentationクラスのインスタンスを作成
Presentation presentation = new Presentation();
// スライドサイズを設定
presentation.SlideSize.Type = SlideSizeType.Screen16x9;
// Workbookクラスのインスタンスを作成し、Excelファイルを読み込む
Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");
// Workbook内の最初のワークシートを取得
Worksheet sheet = workbook.Worksheets[0];
// プレゼンテーションにチャートを作成
RectangleF rect = new RectangleF(50, 100, presentation.SlideSize.Size.Width - 100, presentation.SlideSize.Size.Height - 150);
ISlide slide = presentation.Slides[0];
IChart chart = slide.Shapes.AppendChart(ChartType.ColumnClustered, rect);
// デフォルトのダミーデータをクリア
chart.ChartData.Clear(0, 0, 5, 5);
// ワークシート内の行を繰り返し処理
for (int i = 0; i < sheet.AllocatedRange.RowCount; i++)
{
// ワークシート内の列を繰り返し処理
for (int j = 0; j < sheet.AllocatedRange.ColumnCount; j++)
{
// ワークシートのセル値をチャートデータの値として設定
chart.ChartData[i, j].Value = sheet.AllocatedRange[i + 1, j + 1].Value2;
// 数値形式をコピー
chart.ChartData[i, j].NumberFormat = sheet.AllocatedRange[i + 1, j + 1].NumberFormat;
}
}
// チャートタイトルを設定
chart.ChartTitle.TextProperties.Text = sheet.Name;
chart.ChartTitle.TextProperties.IsCentered = true;
chart.ChartTitle.Height = 25;
chart.HasTitle = true;
// シリーズラベルとカテゴリラベルを設定
chart.Series.SeriesLabel = chart.ChartData["B1", "C1"];
chart.Categories.CategoryLabels = chart.ChartData["A2", "A" + sheet.AllocatedRange.RowCount];
// シリーズ値を設定
chart.Series[0].Values = chart.ChartData["B2", "B" + sheet.AllocatedRange.RowCount];
chart.Series[1].Values = chart.ChartData["C2", "C" + sheet.AllocatedRange.RowCount];
// 軸の数値形式を設定
chart.PrimaryCategoryAxis.NumberFormat = sheet.AllocatedRange["A2"].NumberFormat;
chart.PrimaryValueAxis.NumberFormat = sheet.AllocatedRange["B2"].NumberFormat;
// チャートのスタイルを設定
chart.ChartStyle = ChartStyle.Style2;
// オーバーラップとギャップ幅を設定
chart.OverLap = 50;
chart.GapWidth = 200;
// プレゼンテーションを保存
presentation.SaveToFile("output/ExcelデータからPowerPointグラフを作成.pptx", FileFormat.Pptx2019);
presentation.Dispose();
workbook.Dispose();
}
}
}
Excel のグラフを画像として PowerPoint スライドに挿入する
Excel ワークシートの既存のグラフをその外観と書式を正確に維持しながら PowerPoint スライドに挿入するためには、Workbook.SaveChartAsImage() メソッドを使用します。このメソッドは、Excel グラフを画像として保存し、その画像をスライドに追加することができます。具体的な手順は以下のとおりです:
- Presentation クラスのインスタンスを作成します。
- Workbook クラスのインスタンスを作成し、Workbook.LoadFromFile() メソッドを使用して Excel ファイルをロードします。
- Workbook.SaveChartAsImage() メソッドを使用して、ワークシート内のグラフを画像として保存します。
- Presentation.Images.Append() メソッドを使用して、その画像をプレゼンテーションに埋め込みます。
- Presentation.Slides[].AppendEmbedImage() メソッドを使用して、画像をスライドに追加します。
- Presentation.SaveToFile() メソッドを使用してプレゼンテーションを保存します。
- C#
using Spire.Presentation;
using Spire.Presentation.Drawing;
using Spire.Xls;
using System.Drawing;
using FileFormat = Spire.Presentation.FileFormat;
namespace PresentationChartExcelChart
{
class Program
{
public static void Main(string[] args)
{
// Presentationクラスのインスタンスを作成
Presentation presentation = new Presentation();
// スライドサイズを設定
presentation.SlideSize.Type = SlideSizeType.Screen16x9;
// Workbookクラスのインスタンスを作成し、Excelファイルを読み込む
Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");
// 最初のワークシート内の最初のチャートを画像として保存
Image image = workbook.SaveChartAsImage(workbook.Worksheets[0], 0);
// 画像をプレゼンテーションに埋め込む
IImageData imageData = presentation.Images.Append(image);
// 最初のスライドに画像を追加
RectangleF rect = new RectangleF(50, 120, presentation.SlideSize.Size.Width - 100, presentation.SlideSize.Size.Height - 170);
presentation.Slides[0].Shapes.AppendEmbedImage(ShapeType.Rectangle, imageData, rect);
// プレゼンテーションを保存
presentation.SaveToFile("output/PowerPointでExcelのグラフを画像として挿入.pptx", FileFormat.Pptx2019);
presentation.Dispose();
workbook.Dispose();
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。