Я создаю экспорт в Excel, который содержит несколько круговых диаграмм, которые динамически создаются на основе данных из базы данных, которые выгружаются в диапазон ячеек в электронной таблице. Мне нужно, чтобы метки данных для круговых диаграмм находились на внешнем конце круговой диаграммы. Метки данных по умолчанию настроены на лучшее соответствие.
Я пытался манипулировать позициями меток данных с помощью eLabelPosition
, который имеет свойство OutEnd
, но безуспешно. Это приводит к тому, что метки данных полностью исчезают.
Ниже приведен метод, который я использую для создания круговых диаграмм.
private void AddPieChart(ExcelWorksheet worksheet, int firstDataRow, int firstDataColumn, int lastDataRow, int nextColumn, int firstColumn)
{
ExcelPieChart pieChart = worksheet.Drawings.AddChart(worksheet.Name.ToString() + " Pie Chart", eChartType.Pie3D) as ExcelPieChart;
var serie = pieChart.Series.Add(ExcelCellBase.GetAddress(firstDataRow + 3, firstDataColumn, lastDataRow + 3, firstDataColumn),
ExcelCellBase.GetAddress(firstDataRow + 3, firstColumn, lastDataRow + 3, firstColumn));
pieChart.DataLabel.ShowCategory = true;
pieChart.DataLabel.ShowLeaderLines = true;
pieChart.DataLabel.Font.Bold = true;
pieChart.DataLabel.Font.Size = 12;
pieChart.Legend.Remove();
pieChart.SetSize(500, 350);
pieChart.SetPosition(lastDataRow + 5, 0, nextColumn - 1, 0);
pieChart.Border.Fill.Color = Color.White;
pieChart.Series.Chart.RoundedCorners = false;
var pieSerie = (ExcelPieChartSerie)serie;
pieSerie.DataLabel.Position = eLabelPosition.OutEnd;
}