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


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

使用したツール:Spire.XLS for .NET pack

dllファイルの取得と参照:

方法1:公式ウェブサイトからパッケージをダウンロードします。ダウンロードした後、ファイルを解凍し、Binフォルダーの下にプログラムをインストールします。インストール後、vsプロジェクトプログラムへのインストールパスのBinフォルダーにあるSpire.Xls.dllファイルへの参照を追加します。効果は次のようになります:

方法2:Nugetからダウンロードできます。

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");
        }
    }
}

データラベルを追加した効果:

データを標注した効果:

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

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");
        }
    }
}

データラベル変更効果:

【データレベルを削除】

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チャートデータラベルの追加、変更、削除する方法は以上でした、最後まで読んでいただきありがとうございました。