C＃でExcelチャートデータラベルの追加、変更、削除する方法

チャートでは、チャートデータラベルを使って、チャート内の特定のデータをデータの形式で表し、チャートの読みやすさを向上させることができます。グラフにデータラベルを追加したり、既存のデータラベルを変更したりまたは削除したりできます。以下は、C＃コードを介して実装されます。

## **使用したツール：Spire.XLS for .NET pack**

dllファイルの取得と参照：
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/c5b5fa5e-858e-8113-c1e2-ff53764f940a.png)

方法1：公式ウェブサイトからパッケージを[ダウンロード](https://www.e-iceblue.com/Download/download-excel-for-net-now.html)します。ダウンロードした後、ファイルを解凍し、Binフォルダーの下にプログラムをインストールします。インストール後、vsプロジェクトプログラムへのインストールパスのBinフォルダーにあるSpire.Xls.dllファイルへの参照を追加します。結果は次のようになります：

方法2：[Nuget](http://www.nuget.org/packages/Spire.XLS/)からダウンロードできます。

## C＃のソースコード

【データラベル追加】

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

namespace AddDataLables
{
    class Program
    {
        static void Main(string[] args)
        {
            //テストドキュメントをロードする
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\example.xlsx");

            //最初のワークブックとその中の最初のチャートを取得する
            Worksheet sheet = workbook.Worksheets[0];
            Chart chart = sheet.Charts[0];

            //チャートで指定されたシリーズを取得する
            ChartSerie serie1 = chart.Series[1];
            //データラベルを追加し、データラベルスタイルを設定する
            serie1.DataPoints.DefaultDataPoint.DataLabels.HasValue = true;
            serie1.DataPoints.DefaultDataPoint.DataLabels.FrameFormat.Fill.FillType = ShapeFillType.SolidColor;
            serie1.DataPoints.DefaultDataPoint.DataLabels.FrameFormat.Fill.ForeColor = Color.White;
            serie1.DataPoints.DefaultDataPoint.DataLabels.FrameFormat.Border.Pattern = ChartLinePatternType.Solid;
            serie1.DataPoints.DefaultDataPoint.DataLabels.FrameFormat.Border.Color = Color.Green;

            //データラベルを追加し、データラベルスタイルを設定する
            //ChartSerie serie2 = chart.Series[2];
            //serie2.DataPoints.DefaultDataPoint.DataLabels.ValueFromCell = sheet.Range["B4:E4"];
            //データ注釈を追加する
            //serie2.DataPoints.DefaultDataPoint.DataLabels.HasWedgeCallout = true;

            //ドキュメントを保存する
            workbook.SaveToFile("AddDataLable.xlsx");
            System.Diagnostics.Process.Start("AddDataLable.xlsx");
        }
    }
}
```
データラベルを追加した結果：
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/67911b40-03dc-630f-2d49-632567393910.png)

データを標注した結果：
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/ce28c9b6-d330-2949-443e-9e3068cb45f9.png)


【データラベルの編集および変更】
ここでは、上記のコードに追加されたデータアノテーションを例として、変更やその他の操作を取り上げます。

```
using Spire.Xls;
using Spire.Xls.Charts;

namespace ModifyDataLable
{
    class Program
    {
        static void Main(string[] args)
        {
            //ドキュメントをロードする
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\AddDataLable.xlsx");

            //シートの最初のワークシートと最初のグラフを取得する
            Worksheet sheet = workbook.Worksheets[0];
            Chart chart = sheet.Charts[0];

            //チャートシリーズとデータラベルを取得する
            ChartSerie chartSeries = chart.Series[2];
            ChartDataLabels cslabel = chartSeries.DataPoints[1].DataLabels;

            cslabel.HasLegendKey = true;//表示凡例アイテムラベルを設定する
            cslabel.Position = DataLabelPositionType.Center;//データラベルの位置を中央に配置する

            //データラベルの位置をカスタマイズします、デフォルトの原点はチャートの左上隅にあります
            cslabel.IsYMode = true;
            cslabel.IsXMode = true;
            cslabel.X = 1100;
            cslabel.Y = 400;

            //表示ガイドラインの設定する
            cslabel.ShowLeaderLines = true;

            //ウェッジマークをキャンセルする（DataPointを任意に設定するとシリーズ全体で有効になる）
            cslabel.HasWedgeCallout = false;

            //ドキュメントを保存する
            workbook.SaveToFile("ModifyDatalable.xlsx");
            System.Diagnostics.Process.Start("ModifyDatalable.xlsx");
        }
    }
}
```
データラベル変更結果：
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/38181830-37ed-1dc1-55a5-bff7e8d8e754.png)

【データレベルを削除】

```
using Spire.Xls;
using Spire.Xls.Charts;

namespace DeleteDataLable
{
    class Program
    {
        static void Main(string[] args)
        {
            //ドキュメントをロードする
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\AddDataLable.xlsx");

            //シートの最初のワークシートと最初のグラフを取得する
            Worksheet sheet = workbook.Worksheets[0];
            Chart chart = sheet.Charts[0];

            //すべてのシリーズのデータラベルを削除する
            for (int i = 0; i < chart.Series.Count; i++)
            {
                ChartSerie chartSeries = chart.Series[i];
                //すべてのデータラベルを削除する
                chartSeries.DataPoints.Clear();
            }
            //指定されたデータ系列からデータラベルを削除する
            //ChartSerie chartSeries = chart.Series[2];
            //chartSeries.DataPoints.Clear();

            //指定された系列のデータラベルの指定された値を削除する
            //ChartSerie chartSeries = chart.Series[2];
            //ChartDataLabels cslabel = chartSeries.DataPoints[0].DataLabels;
            //cslabel.Text = " ";
            //cslabel.HasLegendKey = false;

            //ドキュメントを保存する
            workbook.SaveToFile("RemoveDataLable.xlsx");
            System.Diagnostics.Process.Start("RemoveDataLable.xlsx");
        }
    }
}
```
プログラムを実行した後、データラベルの削除結果を表示できます。

今回のExcelチャートデータラベルの追加、変更、削除する方法は以上でした、最後まで読んでいただきありがとうございました。