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

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


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


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

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




CellReportとViewerControlの配置
Form1.csのデザイン画面を開き、ツールボックスからCellReportとViewerControlをドラッグアンドドロップでフォームに配置します。

※ツールボックスにCellReportとViewerControlが表示されない場合、以下をお試しください。
- ツールボックスの再表示
- プロジェクトのリビルド
- Visual Studioの再起動
テンプレートExcelファイルの配置
テンプレートExcelファイルをコピーし、プロジェクトを右クリック - [貼り付け]からプロジェクトルートにファイルを配置します。
また、プロパティから[出力ディレクトリにコピー]の項目を"常にコピーする"に設定します。

グラフを追加した帳票の作成
グラフイメージを挿入した帳票を作成するコードを実装していきます。
FormのLoadイベントを実装します。


cellReport1 = new AdvanceSoftware.ASReport.CellReport(); cellReport1.FileName = Path.Combine(Application.StartupPath, "Template.xlsx"); cellReport1.Report.Start(); cellReport1.Report.File(); cellReport1.Page.Start("グラフ", "1"); // グラフの数を取得 int chartCount = cellReport1.GetChartCount(); for (int i = 0; i < chartCount; i++) { // グラフ情報を取得 ChartData chartData = cellReport1.GetChartData(i, 330); // ChartData からの Image オブジェクト生成処理は独自に実装する必要があります。 var chartCreator = new MSChartCreator(); Image chartImage = chartCreator.GetChartImage(chartData); // グラフイメージの挿入 cellReport1.Pos(chartData.col, chartData.row).Canvas.AddChart(chartImage, chartData); } cellReport1.Page.End(); cellReport1.Report.End(); // プレビュー viewerControl1.Document = cellReport1.Document;
※Chartクラスを使用するにはプロジェクトでSystem.Windows.Forms.DataVisualizationのアセンブリを参照する必要があります。
アプリケーションを実行後、グラフイメージが追加された帳票のプレビューが表示されます。

印刷、PDFファイルの作成
印刷(Microsoft XPS Document Writer使用)
プレビュー画面から左上の印刷アイコンをクリックすることで印刷を行えます。
印刷 PDFファイル
プレビュー画面から左上のファイルアイコンをクリックすることでPDF出力を行えます。
PDFファイル
対応するグラフの種類
- 折れ線グラフ
- 集合縦棒グラフ
- 集合横棒グラフ
- 円グラフ
- ドーナツグラフ
- 面グラフ
グラフ情報に関する主なプロパティと対応するグラフ要素
※"chartData"は"cellReport1.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 | 凡例のテキストのフォントスタイル |
さいごに
AS-Report 12でグラフを追加した帳票を作成する方法について解説してきました。
今回は以上になります。ありがとうございました。
AS-Report 12製品ページはこちら
AS-Report 12体験版はこちら(無償)