Microsoft Excelでは、データなどを入力・編集するためのワークシートとは別にグラフだけを表示することが可能な「グラフシート」をExcelファイルに追加することができます。このグラフシートは、ワークシート全体にグラフが表示されるため、業務においてグラフを印刷して確認する必要がある場合に便利な機能です。


「DioDocs for Excel(ディオドック)」では、Microsoft Excelと同じようにワークシートにチャート(グラフ)を追加したり、グラフシートのようにチャートを別のワークシートに追加することができます。この機能は「チャートシート」と呼ばれています。
ワークシートにチャートを追加する
DioDocs for Excelを使用してワークシートにチャートを作成するには、IShapesインタフェースのAddChartメソッドを使用します。このメソッドを使用して、追加先のワークシートのセル範囲を直接指定してチャートを追加することができます。また、追加先のワークシートの位置座標を指定して特定の位置にチャートを追加することもできます。チャートにデータを反映するには、ISeriesCollectionクラスのAddメソッドを使用します。
using GrapeCity.Documents.Excel;
using GrapeCity.Documents.Excel.Drawing;
Console.WriteLine("Excelファイルにグラフシートを追加する");
// ワークブックの作成
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];
// データの追加
worksheet.Range["A1:D13"].Value = new object[,]
{
{ "月", "商品A", "商品B", "商品C" },
{ "1月", 90, 62, 55 },
{ "2月", 75, 68, 50 },
{ "3月", 110, 72, 53 },
{ "4月", 70, 65, 158 },
{ "5月", 85, 170, 60 },
{ "6月", 95, 75, 65 },
{ "7月", 100, 80, 70 },
{ "8月", 110, 185, 118 },
{ "9月", 105, 90, 80 },
{ "10月", 115, 95, 85 },
{ "11月", 20, 100, 90 },
{ "12月", 30, 110, 95 }
};
// グラフの追加
IShape shape = worksheet.Shapes.AddChart(ChartType.ColumnClustered, worksheet.Range["F6:L18"]);
shape.Chart.SeriesCollection.Add(worksheet.Range["A1:D13"], RowCol.Columns);
shape.Chart.ChartTitle.Text = "毎月の売上(商品別)";
// Excelファイルに保存
workbook.Save("AddChartSheet.xlsx");実行すると以下のようにワークシートにチャートが追加されます。

チャートシートを追加する
DioDocs for Excelでチャートシートを追加するには、IWorksheets.Add(SheetType.Chart)メソッドを使用してワークブックにチャートシートを追加します。チャートシートにチャートを追加するには、IShapes.AddChartメソッドを使用します。
using GrapeCity.Documents.Excel;
using GrapeCity.Documents.Excel.Drawing;
Console.WriteLine("Excelファイルにグラフシートを追加する");
// ワークブックの作成
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];
// データの追加
worksheet.Range["A1:D13"].Value = new object[,]
{
{ "月", "商品A", "商品B", "商品C" },
{ "1月", 90, 62, 55 },
{ "2月", 75, 68, 50 },
{ "3月", 110, 72, 53 },
{ "4月", 70, 65, 158 },
{ "5月", 85, 170, 60 },
{ "6月", 95, 75, 65 },
{ "7月", 100, 80, 70 },
{ "8月", 110, 185, 118 },
{ "9月", 105, 90, 80 },
{ "10月", 115, 95, 85 },
{ "11月", 20, 100, 90 },
{ "12月", 30, 110, 95 }
};
// チャートシートを追加
IWorksheet chartSheet = workbook.Worksheets.Add(SheetType.Chart);
// チャートシートにチャートを追加
IShape shape = chartSheet.Shapes.AddChart(ChartType.ColumnClustered, 100, 100, 200, 200);
shape.Chart.SeriesCollection.Add(worksheet.Range["A1:D13"]);
shape.Chart.ChartTitle.Text = "毎月の売上(商品別)";
// チャートシートをアクティブシートにする
chartSheet.Activate();
// Excelファイルに保存
workbook.Save("AddChartSheet.xlsx");実行すると以下のようにExcelファイルにチャートシートが追加されます。

チャートシートのズーム調整
Microsoft Excelでは、「選択範囲に合わせて拡大/縮小」を設定してグラフシートを選択範囲にフィットさせて表示することができます。

DioDocs for Excelでは、V8J SP2からFitSelectionプロパティを使用して同様の設定を実装することが可能になっています。
// See https://aka.ms/new-console-template for more information
using GrapeCity.Documents.Excel;
using GrapeCity.Documents.Excel.Drawing;
Console.WriteLine("Excelファイルにグラフシートを追加する");
// ワークブックの作成
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];
// データの追加
worksheet.Range["A1:D13"].Value = new object[,]
{
{ "月", "商品A", "商品B", "商品C" },
{ "1月", 90, 62, 55 },
{ "2月", 75, 68, 50 },
{ "3月", 110, 72, 53 },
{ "4月", 70, 65, 158 },
{ "5月", 85, 170, 60 },
{ "6月", 95, 75, 65 },
{ "7月", 100, 80, 70 },
{ "8月", 110, 185, 118 },
{ "9月", 105, 90, 80 },
{ "10月", 115, 95, 85 },
{ "11月", 20, 100, 90 },
{ "12月", 30, 110, 95 }
};
// チャートシートを追加
IWorksheet chartSheet = workbook.Worksheets.Add(SheetType.Chart);
// チャートシートにチャートを追加
IShape shape = chartSheet.Shapes.AddChart(ChartType.ColumnClustered, 100, 100, 200, 200);
shape.Chart.SeriesCollection.Add(worksheet.Range["A1:D13"]);
shape.Chart.ChartTitle.Text = "毎月の売上(商品別)";
// チャートシートを選択範囲に合わせて拡大縮小する
chartSheet.SheetView.FitSelection = true;
// チャートシートをアクティブシートにする
chartSheet.Activate();
// Excelファイルに保存
workbook.Save("AddChartSheet.xlsx");実行すると以下のようにチャートシートがウィンドウサイズにあわせて自動的にズーム調整されてチャート全体が常に表示されるようになります。


今回紹介した機能については以下のデモで動作を確認いただけます。
DioDocsの最新バージョン「V8J SP2」の新機能については、以下のページで紹介していますのでこちらも是非ご覧ください。
さいごに
弊社Webサイトでは、製品の機能を気軽に試せるデモアプリケーションやトライアル版も公開していますので、こちらもご確認いただければと思います。
また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。
