如何使用EPPlus将Excel条形图上的数据标签更改为基本内部?

Ada*_*dam 3 c# excel epplus

我有一个ExcelBarChart使用EPPlus创建的。

我试图将数据标签的位置更改为Inside Base,但是当我在ExcelBarChart对象内部查看时ExcelChartDataLabel,会看到一个属性,并在其中看到一个名为的属性eLabelPosition

eLabelPosition 但是受到保护并且无法访问。

使用EPPlus设置数据标签位置的正确方法是什么?

请参见下面的相关代码:

var chart = (ExcelBarChart)chartWorksheet.Drawings.AddChart("changesVisualized", eChartType.ColumnClustered);
chart.SetSize(1000, 500);
chart.SetPosition(0,0);
chart.Title.Text = row.Name + "Volume " + date1.ToString("MM/dd/yyyy") + " - " + date2.ToString("MM/dd/yyyy");
chart.DataLabel.ShowValue = true;

var thisYearSeries = (ExcelChartSerie)(chart.Series.Add(worksheet.Cells["B4,D4,F4,H4,J4"], worksheet.Cells["B3,D3,F3,H3,J3"]));
thisYearSeries.Header = "This Year's Volume";                   

var lastYearSeries = (ExcelChartSerie)(chart.Series.Add(chartWorksheet.Cells["A1,B1,C1,D1,E1"], worksheet.Cells["B3,D3,F3,H3,J3"]));
lastYearSeries.Header = "Last Year's Volume";
Run Code Online (Sandbox Code Playgroud)

Ern*_*e S 5

您可以执行以下操作:

var barChart = worksheet.Drawings.AddChart("Chart1", eChartType.ColumnClustered);
barChart.SetPosition(data.Count + 1, 0, 0, 0);
barChart.Title.Text = "Test Chart";
barChart.Title.Font.Bold = true;
barChart.Title.Font.Size = 12;

var serie = barChart.Series.Add(worksheet.Cells[2, 2, data.Count + 1, 2], worksheet.Cells[2, 1, data.Count + 1, 1]);
var barSeries = (ExcelBarChartSerie)serie;
barSeries.DataLabel.Font.Bold = true;
barSeries.DataLabel.ShowValue = true;
barSeries.DataLabel.ShowPercent = true;
barSeries.DataLabel.ShowLeaderLines = true;
barSeries.DataLabel.Separator = ";";
barSeries.DataLabel.Position = eLabelPosition.InBase;
Run Code Online (Sandbox Code Playgroud)

改编自我的示例:

如何使用EPPLus修改图表系列?