ExcelCreator12では、新機能として、テンプレートExcelファイルに配置されたグラフの情報を取得する機能(※xlsx形式のみ対応)が追加されました。これにより、取得したグラフの情報から、サードパーティー製のライブラリ等を使用してグラフイメージを生成し、PDFファイルにグラフイメージを追加することが可能です。 この記事では、PDFファイルにグラフを追加する方法について解説していきます。
※ExcelCreator12ではグラフ情報の取得、PDFファイルへのグラフイメージの挿入機能についてのみ提供、サポートします。このため、サードパーティー製のライブラリ等を使用したグラフイメージの生成はユーザー独自に実装して頂く必要があります。
- 環境
- 使用するテンプレートExcelファイル
- Windows フォームアプリケーションの作成
- グラフを追加したPDFファイルの生成
- グラフイメージの生成について
- 作成したPDFファイル
- 対応するグラフの種類
- グラフ情報に関する主なプロパティと対応するグラフ要素
- さいごに
環境
- Windows 11
- Visual Studio 2022
- ExcelCreator12
- .NET Framework 4.6.2 / .NET 6
- グラフイメージ生成のライブラリ
- Chartクラス(.NET Framework)
- ScottPlot(.NET)
(※いずれも弊社で動作確認済みの外部ライブラリ)
使用するテンプレートExcelファイル
今回は以下のようなExcelファイルを用意しました。

Windows フォームアプリケーションの作成
Windows フォームアプリケーションを作成していきます。
アプリケーションの作成
Visual Studioを起動して、[新しいプロジェクトの作成]をクリックします。


プロジェクト名:WindowsFormsApp1
フレームワーク:.NET Framework 4.6.2


ExcelCreatorの使用準備
NuGetパッケージのインストール
ソリューションエクスプローラーからプロジェクトを右クリックし、
[NuGet パッケージの管理]を選択します。

パッケージファイルを選択し、[インストール]ボタンをクリックしてパッケージファイルをインストールします。

テンプレートExcelファイルの配置
テンプレートExcelファイルをコピーし、プロジェクトを右クリック - [貼り付け]からプロジェクトルートにファイルを配置します。
また、プロパティから[出力ディレクトリにコピー]の項目を"常にコピーする"に設定します。

グラフを追加したPDFファイルの生成
グラフイメージを挿入したPDFファイルを出力するコードを実装していきます。
ツールボックスから"Button"をドラッグ&ドロップでフォームに配置します。


AdvanceSoftware.ExcelCreator.Creator creator1 = new AdvanceSoftware.ExcelCreator.Creator(); creator1.OpenBook(".\\Out.xlsx", ".\\Template.xlsx"); // グラフの数を取得 int chartCount = creator1.GetChartCount(); for (int i = 0; i < chartCount; i++) { // グラフ情報を取得 ChartData chartData = creator1.GetChartData(i, 330); // ChartData からの Image オブジェクト生成処理は独自に実装する必要があります。 var chartCreator = new MSChartCreator(); Image chartImage = chartCreator.GetChartImage(chartData); // PDF ファイルにのみ出力されるチャートを設定します。 creator1.Pos(chartData.col, chartData.row).Canvas.AddChart(chartImage, chartData); } creator1.CloseBook(true, ".\\Out.pdf", false);
アプリケーションを起動後、ボタンをクリックしてPDFファイルを出力します。

グラフイメージの生成について
弊社では.NET FrameworkのChartクラスを使用したグラフイメージ生成処理のサンプル、また、.NETではScottPlotを使用したグラフイメージ生成処理のサンプルをご用意しています。
ご希望の方は以下の問い合わせフォームからお問い合わせください。
お問い合わせはこちら
作成したPDFファイル
Chartクラス
※Chartクラスを使用するにはプロジェクトでSystem.Windows.Forms.DataVisualizationのアセンブリを参照する必要があります。
出力PDF(Chartクラス使用) ScottPlot

PDF出力(ScottPlot使用)
対応するグラフの種類
- 折れ線グラフ
- 集合縦棒グラフ
- 集合横棒グラフ
- 円グラフ
- ドーナツグラフ
- 面グラフ
グラフ情報に関する主なプロパティと対応するグラフ要素
※"chartData"は"creator1.GetChartData"メソッドの返り値としています。
| プロパティ | グラフ要素 |
|---|---|
| chartData.chartProperties.fill.color | グラフエリアの背景色 |
| chartData.chartProperties.line.color | グラフエリアの境界線の色 |
| chartData.chartProperties.line.width | グラフエリアの境界線の幅(px単位) |
| chartData.chartProperties.line.dashType | グラフエリアの境界線のスタイル |
| chartData.width | グラフエリアの幅 |
| chartData.height | グラフエリアの高さ |
| chartData.chartTitle.text | グラフタイトルのテキスト |
| chartData.chartTitle.chartProperties.fill.color | グラフタイトルの背景色 |
| chartData.chartTitle.chartProperties.line.color | グラフタイトルの境界線の色 |
| chartData.chartTitle.chartProperties.line.width | グラフタイトルの境界線の幅(px単位) |
| chartData.chartTitle.chartProperties.line.dashType | グラフタイトルの境界線のスタイル |
| chartData.chartTitle.textProperties.fill.color | グラフタイトルのテキストの色 |
| chartData.chartTitle.textProperties.font.size | グラフタイトルのテキストのフォントサイズ(pt単位) |
| chartData.chartTitle.textProperties.font.style | グラフタイトルのテキストのフォントスタイル |
| chartData.plotArea.chartProperties.fill.color | プロットエリアの背景色 |
| chartData.plotArea.chartProperties.line.color | プロットエリアの境界線の色 |
| chartData.plotArea.chartProperties.line.width | プロットエリアの境界線の幅(px単位) |
| chartData.plotArea.chartProperties.line.dashType | プロットエリアの境界線のスタイル |
| chartData.plotArea.series[].text | 系列の名前 |
| chartData.plotArea.series[].ChartType | 系列のグラフの種類 |
| chartData.plotArea.series[].axisType | 系列で使用する軸 |
| chartData.plotArea.series[].dataPointValues[].xValue | 縦(値)軸のデータ |
| chartData.plotArea.series[].dataPointValues[].yValue | 横(項目)軸のデータ |
| chartData.plotArea.series[].dataPointValues[].categoryValue | 横(項目)軸の項目名 |
| chartData.legend.position | 凡例の位置 |
| chartData.legend.chartProperties.fill.color | 凡例の背景色 |
| chartData.legend.chartProperties.line.color | 凡例の境界線の色 |
| chartData.legend.chartProperties.line.width | 凡例の境界線の幅(px単位) |
| chartData.legend.chartProperties.line.dashType | 凡例の境界線のスタイル |
| chartData.legend.textProperties.fill.color | 凡例のテキストの色 |
| chartData.legend.textProperties.font.size | 凡例のテキストのフォントサイズ(pt単位) |
| chartData.legend.textProperties.font.style | 凡例のテキストのフォントスタイル |
さいごに
ExcelCreator12でPDFファイルにグラフを追加する方法について解説してきました。
今回は以上になります。ありがとうございました。
ExcelCreator12製品ページはこちら
ExcelCreator12体験版はこちら