C＃を使用してExcelでデータテーブルをグラフに追加する方法

Excelのグラフはデータを視覚化できるため、データをより便利に比較および分析します。ただし、これは特定の制限があります。たとえば、元のデータの値を正確にグラフから直接読み取ることはできません。Excelが提供するソリューションは、グラフの下にシミュレーションテーブルを追加することです。つまり、テーブルが作成されたデータを含む軸の下にテーブルを追加します。この記事は、C＃で無料のコンポーネントである[Free Spire.XLS](https://www.e-iceblue.com/Download/download-excel-for-net-free.html)を紹介して、Excelファイルを別々に作成し、データを追加し、グラフを生成し、シミュレーションテーブルを追加します。

使用する名前空間
```csharp
using Spire.Xls;
using System.Drawing;
```
## 詳細な手順
ステップ1　Excelファイルを個別に作成し、フォームを追加します。
```csharp
Workbook workbook = new Workbook();
workbook.CreateEmptySheets(1);
Worksheet sheet = workbook.Worksheets[0];
```
ステップ2　次のステップでチャートを生成するために、セルにサンプルデータを追加します。
```csharp
sheet.Name = "Demo";
sheet.Range["A1"].Value = "月";
sheet.Range["A2"].Value = "一月";
sheet.Range["A3"].Value = "二月";
sheet.Range["A4"].Value = "三月";
sheet.Range["A5"].Value = "四月";
sheet.Range["A6"].Value = "五月";
sheet.Range["A7"].Value = "六月";
sheet.Range["B1"].Value = "田中";
sheet.Range["B2"].NumberValue = 3.3;
sheet.Range["B3"].NumberValue = 2.5;
sheet.Range["B4"].NumberValue = 2.0;
sheet.Range["B5"].NumberValue = 3.7;
sheet.Range["B6"].NumberValue = 4.5;
sheet.Range["B7"].NumberValue = 4.0;
sheet.Range["C1"].Value = "大森";
sheet.Range["C2"].NumberValue = 3.8;
sheet.Range["C3"].NumberValue = 3.2;
sheet.Range["C4"].NumberValue = 1.7;
sheet.Range["C5"].NumberValue = 3.5;
sheet.Range["C6"].NumberValue = 4.5;
sheet.Range["C7"].NumberValue = 4.3;
sheet.Range["D1"].Value = "小川";
sheet.Range["D2"].NumberValue = 3.0;
sheet.Range["D3"].NumberValue = 2.8;
sheet.Range["D4"].NumberValue = 3.5;
sheet.Range["D5"].NumberValue = 2.3;
sheet.Range["D6"].NumberValue = 3.3;
sheet.Range["D7"].NumberValue = 3.8;
```
ステップ3　ステップ2で入力したデータを使用して、縦棒グラフを生成し、Excelでの位置、グラフ名などを設定します。
```csharp
Chart chart = sheet.Charts.Add(ExcelChartType.Column3DClustered);
chart.DataRange = sheet.Range["B1:D7"];
chart.SeriesDataFromRange = false;
chart.TopRow = 7;
chart.BottomRow = 28;
chart.LeftColumn = 3;
chart.RightColumn = 11;
chart.ChartTitle = "シミュレートされたデータテーブルを含む棒グラフの例";
chart.ChartTitleArea.IsBold = true;
chart.ChartTitleArea.Size = 12;
Spire.Xls.Charts.ChartSerie cs1 = chart.Series[0];
cs1.CategoryLabels = sheet.Range["A2:A7"];
```
ステップ4　シミュレーションデータテーブルを追加します。
```csharp
chart.HasDataTable = true;
```
ステップ5　ドキュメントをExcel2010として保存します。
```csharp
workbook.SaveToFile("S3.xlsx", ExcelVersion.Version2010);
```
コードを実行して結果ドキュメントのスクリーンショット
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/465c66ed-42b5-2cb7-0ceb-bfe94a79ea58.png)

## 完全なるコード

```csharp
using Spire.Xls;
using System.Drawing;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook workbook = new Workbook();
            workbook.CreateEmptySheets(1);
            Worksheet sheet = workbook.Worksheets[0];

            sheet.Name = "Demo";
            sheet.Range["A1"].Value = "月";
            sheet.Range["A2"].Value = "一月";
            sheet.Range["A3"].Value = "二月";
            sheet.Range["A4"].Value = "三月";
            sheet.Range["A5"].Value = "四月";
            sheet.Range["A6"].Value = "五月";
            sheet.Range["A7"].Value = "六月";
            sheet.Range["B1"].Value = "田中";
            sheet.Range["B2"].NumberValue = 3.3;
            sheet.Range["B3"].NumberValue = 2.5;
            sheet.Range["B4"].NumberValue = 2.0;
            sheet.Range["B5"].NumberValue = 3.7;
            sheet.Range["B6"].NumberValue = 4.5;
            sheet.Range["B7"].NumberValue = 4.0;
            sheet.Range["C1"].Value = "大森";
            sheet.Range["C2"].NumberValue = 3.8;
            sheet.Range["C3"].NumberValue = 3.2;
            sheet.Range["C4"].NumberValue = 1.7;
            sheet.Range["C5"].NumberValue = 3.5;
            sheet.Range["C6"].NumberValue = 4.5;
            sheet.Range["C7"].NumberValue = 4.3;
            sheet.Range["D1"].Value = "小川";
            sheet.Range["D2"].NumberValue = 3.0;
            sheet.Range["D3"].NumberValue = 2.8;
            sheet.Range["D4"].NumberValue = 3.5;
            sheet.Range["D5"].NumberValue = 2.3;
            sheet.Range["D6"].NumberValue = 3.3;
            sheet.Range["D7"].NumberValue = 3.8;

            Chart chart = sheet.Charts.Add(ExcelChartType.Column3DClustered);
            chart.DataRange = sheet.Range["B1:D7"];
            chart.SeriesDataFromRange = false;
            chart.TopRow = 7;
            chart.BottomRow = 28;
            chart.LeftColumn = 3;
            chart.RightColumn = 11;
            chart.ChartTitle = "シミュレートされたデータテーブルを含む棒グラフの例";
            chart.ChartTitleArea.IsBold = true;
            chart.ChartTitleArea.Size = 12;
            Spire.Xls.Charts.ChartSerie cs1 = chart.Series[0];
            cs1.CategoryLabels = sheet.Range["A2:A7"];

            chart.HasDataTable = true;

            workbook.SaveToFile("S3.xlsx", ExcelVersion.Version2010);
            System.Diagnostics.Process.Start("S3.xlsx");
        }
    }
}
```

今回のExcelでデータテーブルをグラフに追加する方法は以上でした、最後まで読んでいただきありがとうございました。