DioDocs for Excel
DioDocs for Excel
データラベル
機能 > チャート > チャートオブジェクトのカスタマイズ > データラベル

本製品では、チャートにデータラベルを挿入して、チャートの情報を視覚化してわかりやすくすることができます。IPointインタフェースとISeriesインタフェースのプロパティとメソッドを使用して、チャートにデータラベルを追加できます。

チャートにデータラベルを設定し、データラベルのテキストをカスタマイズする方法については、次のサンプルコードを参照してください。

C#
コードのコピー
worksheet.Range["A1:D6"].Value = new object[,]
{
    {null, "S1", "S2", "S3"},
    {"Item1", 10, 25, 25},
    {"Item2", -51, -36, 27},
    {"Item3", 52, -85, -30},
    {"Item4", 22, 65, 65},
    {"Item5", 23, 69, 69}
};

// 系列のすべてのデータラベルと特定のデータラベルの書式を設定します
IShape shape1 = worksheet.Shapes.AddChart(ChartType.ColumnClustered, 200, 50, 300, 300);
shape1.Chart.SeriesCollection.Add(worksheet.Range["A1:D6"], RowCol.Columns, true, true);
ISeries series1 = shape1.Chart.SeriesCollection[0];
series1.HasDataLabels = true;
// series1のすべてのデータラベルの書式を設定します
series1.DataLabels.Format.Fill.Color.RGB = Color.Green;
series1.DataLabels.Format.Line.Color.RGB = Color.Red;
series1.DataLabels.Format.Line.Weight = 3;
// series1の特定のデータラベルの書式を設定します
series1.DataLabels[2].Format.Fill.Color.RGB = Color.Yellow;
series1.Points[2].DataLabel.Format.Line.Color.RGB = Color.Blue;
series1.Points[2].DataLabel.Format.Line.Weight = 5;

// データレベルのテキストをカスタマイズします
IShape shape2 = worksheet.Shapes.AddChart(ChartType.ColumnClustered, 550, 50, 300, 300);
shape2.Chart.SeriesCollection.Add(worksheet.Range["A1:D6"], RowCol.Columns, true, true);
ISeries series2 = shape2.Chart.SeriesCollection[0];
series2.HasDataLabels = true;
// データレベルのテキストをカスタマイズします
series2.DataLabels.ShowCategoryName = true;
series2.DataLabels.ShowSeriesName = true;
series2.DataLabels.ShowLegendKey = true;

また、データラベルの方向を横書き、縦書き、右へ90度回転、左へ90度回転に設定できるとともに、半角文字を含む縦書きの場合は、行の並び(「右から左」など)を設定することができます。データラベルの方向を設定するには、IDataLabelsIDataLabel/IDataLabels.ITextFrame/IDataLabel.ITextFrameインターフェースのDirectionプロパティにTextDirection列挙体を設定します。

データラベルの方向を「縦書き(半角文字含む)」かつ行の並びを「左から右」に設定する方法については、次のコード例を参照してください。

C#
コードのコピー
// チャートを作成します
shape.Chart.SeriesCollection.Add(worksheet.Range["A1:D6"], RowCol.Columns, true, true);

// 系列 1 にデータラベルを追加します
ISeries series1 = shape.Chart.SeriesCollection[0];
series1.HasDataLabels = true;

// すべてのデータラベルの方向を設定します
series1.DataLabels.Direction = TextDirection.Stacked;

// 最初のデータラベルの方向を設定します
series1.Points[0].DataLabel.TextFrame.Direction = TextDirection.Vertical;

// 2 番目のデータラベルの方向を設定します
series1.Points[1].DataLabel.Direction = TextDirection.Vertical;

IDataLabelインタフェースのOrientationプロパティを使用して、データラベルのテキスト角度を設定することもできます。

データラベルのテキスト角度を設定する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
// 新しいワークブックを作成します
var workbook = new GrapeCity.Documents.Excel.Workbook();

IWorksheet worksheet = workbook.Worksheets[0];

// チャートを追加します
IShape shape = worksheet.Shapes.AddChart(ChartType.ColumnClustered, 250, 20, 360, 230);
worksheet.Range["A1:B5"].Value = new object[,]
{
    {null, "S1"},
    {"Item1", -20},
    {"Item2", 30},
    {"Item3", 50 },
    {"Item3", 40 }
};
shape.Chart.SeriesCollection.Add(worksheet.Range["A1:B5"], RowCol.Columns, true, true);
ISeries series1 = shape.Chart.SeriesCollection[0];
series1.HasDataLabels = true;

// series1のすべてのデータラベルの角度を設定します
series1.DataLabels.Orientation = 45;

// series1の特定のデータラベルの角度を設定します
series1.DataLabels[2].Orientation = -45;

// Excelファイルに保存します
workbook.Save("configdatalabelangle.xlsx");

なお、データラベルの方向と角度は、JSONにエクスポートまたはインポートすることができます。

メモ: Orientationプロパティは、Directionプロパティの値がHorizontalの場合にのみ適用されます。