2016-06-20 6 views
1

Ich habe eine ExcelBarChart, die ich mit EPPlus erstellen.Wie ändere ich ein Datenlabel in einem Excel-Balkendiagramm mit EPPlus in die innere Basis?

Ich versuche, die Position des Daten Label Inside Base zu ändern, aber wenn ich in der ExcelBarChart Objekt schauen Ich sehe eine ExcelChartDataLabel Eigenschaft, und im Inneren, dass eine Eigenschaft eLabelPosition benannt.

eLabelPosition ist jedoch geschützt und unzugänglich.

Wie kann die Position des Datenetiketts mit EPPlus richtig eingestellt werden?

Bitte beachten Sie die entsprechenden Code unten:

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"; 
+0

jede Idee, wie man mach es in interop ?? –

Antwort

3

Sie können etwas tun:

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; 

Angepasst von meinem Beispiel hier:

How do I modify a chart series using EPPLus?

+0

Hallo @Ernie, ich habe meinen Code geändert, um Ihnen genau zu zeigen, mit was ich arbeite. Ich verwende das 'ExcelChartSerie'-Objekt, das keine DataLabel-Eigenschaft besitzt. – Adam

+0

@Adam Ich sehe was du jetzt meinst. Sieh dir meine Änderungen an. Sie sollten stattdessen nur in der Lage sein, in eine 'ExcelBarChartSerie' zu konvertieren. – Ernie

+0

Ich könnte die falsche Version von EPPlus verwenden. Es sieht nicht so aus, als hätte ich 'ExcelBartChartSerie'. Ich benutze Version 3.1.3.0, Laufzeitversion 2.0.50727 – Adam

Verwandte Themen