2017-09-29 2 views
11

Ich erstelle ein VSTO-Add-In, das unter anderem ein Liniendiagramm für einige jährliche Daten erstellen soll. Diese Daten enthalten Datenpunkte auf wöchentlicher Basis. Ich mag die horizontale Achse in Monaten gruppiert werden, hier abgebildet:Diagramm mit mehrstufigen Beschriftungen auf der X-Achse

enter image description here

Ich kann aber nichts in den VSTO Dokumentationen über finden, ob dies möglich ist oder nicht. Soweit ich das beurteilen kann, braucht ein Series nur ein 1-dimensionales Array von Werten für die X-Achse. Hat jemand damit Erfahrung?

Antwort

7

Mit Hilfe der Microsoft Foren habe ich eine Lösung gefunden (MSDN Thread).

Für alle andere, wie fragen, dies zu tun, ist das, was ich am Ende mit:

Chart chart = slide.Shapes.AddChart(XlChartType.xlLine).Chart; 

Excel.Workbook wb = (Excel.Workbook) chart.ChartData.Workbook; 
Excel.Worksheet ws = wb.Worksheets[1]; 

ws.ListObjects["Table1"].Resize(ws.Range["A1:C13"]); 
ws.Range["B1"].Value = "X"; 
ws.Range["A2"].Value = "2015"; 
ws.Range["A3:A7"].ClearContents(); 
ws.Range["A8"].Value = "2016"; 
ws.Range["A9:A13"].ClearContents(); 
ws.Range["B2"].Value = "7/15/2015"; 
ws.Range["B3"].Value = "8/15/2015"; 
ws.Range["B2:B3"].AutoFill(Destination: ws.Range["B2:B13"]); 
ws.Range["B2:B13"].NumberFormat = "d-mmm"; 
ws.Range["C1"].Value = "Y"; 
ws.Range["C2"].Value = "100"; 
ws.Range["C3"].Value = "150"; 
ws.Range["C2:C3"].AutoFill(Destination: ws.Range["C2:C13"]); 
(chart.SeriesCollection(1) as Series).Delete(); 
Series series = chart.SeriesCollection(1) as Series; 
series.Values = "=Sheet1!$C$2:$C$13"; 
series.XValues = "=Sheet1!$A$2:$B$13"; 
4

Sie haben Recht, PowerPoint fehlt diese Funktionalität.

Der Trick bei der Erstellung eines Diagramms mit 2 Serien von x-Achsenbeschriftungen (Multi-Level-Kategorien) ist das Layout der Daten. Sie müssen die Werte für Years und Month in verschiedene Spalten eingeben.

Das Problem ist, dass, während Excel Multi-Level-Kategorie Labels unterstützt, Powerpoint nicht:

enter image description here

Ich konnte es zu schaffen Sie das Diagramm in Excel tun und über die Zwischenablage Objekt, um es in PowerPoint zu kopieren.

+0

eine Möglichkeit, dies in einer VSTO Anwendung programmatisch zu tun ist, da? –

+0

Können Sie Ihren Code veröffentlichen, der ein Diagramm in PowerPoint einfügt, werde ich es anpassen. –

Verwandte Themen