2016-06-06 8 views
0

Ich schreibe ein Modul für eine VB.NET-Webseite, die Werte aus einer Datenbank und fügt sie in Office-Dokumente. Mit Hilfe des Open XML SDK in Visual Studio, ich habe es geschaffen, beide Excel und Powerpoint-Dateien zu ändern, aber ich habe ein Problem mit der Farbe in Powerpoint-Charts:OpenXML SDK PowerPoint-Set Diagramm Farbe

Wie kann ich die Farbe eines Powerpoint-Diagramm zu ändern verwenden das Open XML SDK, ohne dass sich die Farbe vom Thema abgrenzt?

Details unten.

meine Werte in das Arbeitsblatt hinter dem Diagramm nach dem Hinzufügen und die visuellen Linien/Bars zu aktualisieren, erscheinen alle der Reihe die gleiche Farbe verwendet werden. Daher muss ich auch die Farbe der Serie in der Tabelle festlegen. Ich tue dies derzeit mit dem folgenden Code:

Dim barChart1 As DocumentFormat.OpenXml.Drawing.Charts.BarChart = chartPart.ChartSpace.Descendants(Of BarChart).First 
Dim barChartSeries = barChart1.Descendants(Of BarChartSeries).ToList 
barChartSeries(0).ChartShapeProperties.Descendants(Of SolidFill).First.SchemeColor = New SchemeColor() With 
{ .Val = DocumentFormat.OpenXml.Drawing.SchemeColorValues.Accent4} 

Grundsätzlich ich die ersten Balken im Diagramm eingestellt Accent4 als seine Farbe zu verwenden. Akzent1, 2, 3 usw. entsprechen den Farben in der Farbpalette des PowerPoint-Präsentationsthemas. Nachdem dieser Code ausgeführt wurde, verwendet der erste Balken des Diagramms die vierte Farbe der aktuellen Palette.

Das Problem, mit dem ich konfrontiert bin, ist, dass, nachdem die Farbe mit Code eingestellt wurde, der Farbwert getrennt von den tatsächlichen Themenfarben gespeichert wird.

Wenn ich die Powerpoint-Datei öffnen und das Thema ändern, alle Farben ändern außer die, die ich geändert. In diesem Beispiel würde der erste Balken des Diagramms die vierte Farbe für das vorherige Thema beibehalten, anstatt die vierte Farbe des neuen Designs so zu verwenden, wie es eigentlich sein sollte.

Dies wird zu einem Problem, weil mein Unternehmens der Kunden sollen in der Lage sein, das Thema zu einem ändern, die sie besser paßt, aber sie können nicht so leicht tun, wenn einige der Farben bleiben.

Ich verwende die Akzentfarben, weil die Alternative einen tatsächlichen RGB Einstellung Farbwert zu sein scheint, die zu dem gleichen Problem führt. Ich habe das PowerTools-Plugin von Eric White ausprobiert, das den Prozess der Aktualisierung der Diagramme vereinfacht, aber es scheint das Farbproblem nicht zu lösen. Ich benutze es möglicherweise falsch, aber ich konnte keine spezifischen Informationen finden, wie man Farbprobleme debuggt.

Vielen Dank im Voraus für jede Hilfe.

Antwort

1

Ich bin mir nicht sicher, ob dies für VB.NET und OpenXML wahr ist, aber in dem PPT-Objektmodell werden Farben Schema noch mit Pre-2007-Versionen von Powerpoint auf die Kompatibilität unterstützt. Neue Versionen verwenden Farbthemen, keine Schemata. (Ja, ich weiß. Willkommen in der BizarroWorld, die PowerPoint ist).

In VBA, würden Sie so etwas wie dieses verwenden, um die Füllfarbe der Form von Osh nach Accent Color 2 in der aktuellen Farbe THEMA bezeichnet einzustellen.

oSh.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent2