0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2022-03-18

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

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

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

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

データラベルを追加した結果:
02.png

データを標注した結果:
03.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

【データレベルを削除】

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?