25. Automatisierung mit Excel-Daten
Wenn Daten in Excel bereitgestellt werden, können Sie die Funktionen UpdateChart
und PresentationFromTemplate
verwenden, um die Verwendung dieser Daten programmatisch zu kontrollieren.
Mit UpdateChart
ersetzen Sie das Datenblatt eines bestimmten Elements mit Ihren Excel Daten. Mit PresentationFromTemplate
nutzen Sie Ihre Daten für die Erstellung einer neuen Präsentation, basierend auf einer PowerPoint-Vorlage, mit think-cell Diagrammen, die mit Datenbereichen in Excel, wie in 21. Excel-Datenlinks beschrieben, verknüpft sind.
Die Schnittstelle zu beiden Funktionen ist in das Office Automation Model integriert, sodass sie mit jeder Programmiersprache für Office (z. B. Visual Basic for Applications oder C#) aufgerufen werden kann. Eine ausführlichere Anleitung dazu finden Sie hier Erste Schritte.
Der Einstiegspunkt in think-cell ist das think-cell Add-In-Objekt. Dieses kann über die Application.COMAddIns
-Sammlung aufgerufen werden. Aufrufe in think-cell sind immer spät gebunden. Eine Erklärung hierzu finden Sie in der Microsoft Knowledge Base unter:
Frühes und spätes Binden bei Automatisierung verwenden
Der Typ des think-cell Add-In-Objekts ist somit einfach Object
, und es muss keine Typenbibliothek oder Referenz hinzugefügt werden. Sobald Sie sich das Objekt abgerufen haben, können Sie es aufrufen. In VBA in Excel:
In C# können Sie spätes Binden erzielen, indem Sie die Referenz auf das think-cell Add-In-Objekt als dynamic
deklarieren. Dies ist auch der vom Compiler gefolgerte Typ, wenn die Referenz als var
deklariert wird, sodass Sie einfach Folgendes schreiben können:
Hier ist xlapp
eine Referenz auf ein Excel.Application
Objekt, in dem think-cell geladen wird.
- 25.1
- DiagrammAktualisieren
- 25.2
- PräsentationAusVorlage
25.1 DiagrammAktualisieren
25.1.1 Unterschrift
VBA
C#
25.1.2 Beschreibung
Diese Funktion aktualisiert alle Elemente in target
mit dem Namen strName
mit den Daten aus rgData
. Damit die Daten für Diagramme korrekt interpretiert werden, muss der Bereich rgData
seinem Standard-Datenblatt-Layout oder seiner transponierten Version entsprechen, siehe hierzu auch Erstellen eines Diagramms aus Excel und Anpassen des Datenlayouts. Ob die standardmäßige oder transponierte Version verwendet werden soll, wird von der Einstellung bTransposed
zu false
oder true
angegeben. Für Elemente, bei denen es sich nicht um Diagramme handelt, z. B. Tabellen, wird der Wert bTransposed
ignoriert.
target
muss ein Presentation
oder SlideRange
, oder ein einzelnes Slide
, Master
oder CustomLayout
sein.
Beim Namen strName
wird nicht zwischen Groß- und Kleinschreibung unterschieden. Er muss zuvor mithilfe der Eigenschaft UpdateChart-Name in PowerPoint zugewiesen worden sein, wie beschrieben in 24. Einführung in die Automatisierung.
Um sicherzustellen, dass die richtigen Elemente bestimmt werden, stellen Sie sicher, dass sie die einzigen sind, bei denen der UpdateChart-Name auf strName
im als pres
übergebenen Objekt eingestellt ist.
Ist das Element mit einem Excel-Datenbereich verknüpft, wenn die Funktion aufgerufen wird, wird die Verknüpfung getrennt. Anschließend besteht keine Verknüpfung zwischen dem Element und dem Excel-Bereich mehr.
25.1.3 Beispiele
Um diese Beispiele zu verwenden, bereiten Sie wie in 24. Einführung in die Automatisierung beschrieben eine Präsentation vor und speichern Sie sie als C:\Samples\UpdateChart\template.pptx
.
VBA
Um dieses Beispiel zu verwenden, fügen Sie es zu einem Modul in einer Excel-Arbeitsmappe hinzu.
Dies erfordert eine Referenz zum Microsoft PowerPoint 16.0 Objektverzeichnis (siehe Visual Basic for Applications für weitere Informationen).
Das Ausführen von UpdateChart_Sample
in einer Arbeitsmappe aktualisiert das Diagramm in der Präsentationsvorlage mit den in Bereich A1:D5
enthaltenen Daten der ersten Tabelle.
C#
Um dieses Beispiel zu verwenden, ersetzen Sie den Code in Program.cs
der C# Console App Projektvorlage damit.
Dies erfordert eine Referenz zum Microsoft PowerPoint 16.0 Objektverzeichnis, dem Microsoft Excel 16.0 Objektverzeichnis und dem Microsoft Office 16.0 Objektverzeichnis (siehe C# für weitere Informationen).
Das Ausführen der resultierenden Anwendung aktualisiert die Tabelle in der Präsentationsvorlage, sodass sie eine einzelne Serie namens „Serie 1“ mit den Werten 1, 2, 3 enthält. Das Ergebnis wird als template_updated.pptx
gespeichert.
25.2 PräsentationAusVorlage
25.2.1 Unterschrift
VBA
C#
25.2.2 Beschreibung
Diese Funktion nutzt die Datenverknüpfungen zwischen der Excel-Arbeitsmappe wb
und der Vorlage mit dem Dateinamen strTemplate
, um die Vorlage zu instantiieren, indem die verknüpften Elemente mit den Daten aus den damit verknüpften Bereichen aktualisiert werden. Das Ergebnis ist eine neue Präsentation innerhalb der PowerPoint-Instanz ppapp
.
strTemplate
kann entweder ein vollständiger oder relativer Pfadname sein. Der relative Pfadname ist relativ zum Ort der Excel-Arbeitsmappendatei wb
.
Alle Elemente in strTemplate
, die mit der Excel-Arbeitsmappe wb
verknüpft sind, werden aktualisiert (egal ob sie auf automatische Aktualisierung eingestellt sind oder nicht). Anschließend werden in der Präsentation ihre Datenverknüpfungen getrennt, um weitere Veränderungen dieser Elemente zu verhindern.
Elemente in strTemplate
, die mit anderen Excel-Arbeitsmappen als wb
verknüpft sind, bleiben unverändert und verknüpft. Es ist also möglich, Verknüpfungen mehrerer Excel-Arbeitsmappen zu aktualisieren, indem man das Ergebnis dieser Funktion als neue Vorlage speichert und die Funktion dann mit der nächsten Arbeitsmappe aufruft.
Falls Sie die Farben von Diagrammsegmenten oder die Formatierung von Tabellenzellen mit der Excel-Verknüpfung steuern möchten, können Sie für das Farbschema die Option Datenblatt-Füllung überlagern einstellen (siehe Farbschema) oder die Option Datenblatt verwenden… (siehe Formatieren einer Tabelle) verwenden. Um ebenso das Zahlenformat bei der Excel-Verknüpfung zu steuern, setzen Sie es auf Excel-Format verwenden (siehe Zahlenformat).
Stellen Sie sicher, dass Sie die entsprechenden Formatierungsoptionen und das Zahlenformat der entsprechenden Zellen in Excel eingestellt haben, bevor Sie PresentationFromTemplate
aufrufen.
25.2.3 Beispiele
Um diese Beispiele zu verwenden, erstellen Sie zunächst eine Präsentation mit einem gestapelten Diagramm, das mit Bereich G1:K4
der ersten Tabelle in einer Excel-Arbeitsmappe verknüpft ist, wie in Erstellen eines Diagramms aus Excel beschrieben. Speichern Sie die Präsentation als C:\Samples\PresentationFromTemplate\template.pptx
und die Arbeitsmappe als data.xlsx
im gleichen Ordner.
VBA
Um dieses Beispiel zu verwenden, fügen Sie es zu einem Modul in der Excel-Arbeitsmappe data.xlsx
wie oben beschrieben hinzu.
Dies erfordert eine Referenz zum Microsoft PowerPoint 16.0 Objektverzeichnis (siehe Visual Basic for Applications für weitere Informationen).
Das Ausführen von PresentationFromTemplate_Sample
ändert den Wert in Zelle Sheet1!H3
, die mit dem ersten Wert der ersten Serie der Tabelle aus template.pptx
verknüpft ist, von i=1
auf 10
, erstellt eine neue Präsentation mit dem Diagramm in der aktualisierten Vorlage mit diesem Wert, das nicht mehr mit der Arbeitsmappe verknüpft ist, und speichert diese als output_i.pptx
im gleichen Verzeichnis wie die Vorlage.
C#
Um dieses Beispiel zu verwenden, ersetzen Sie den Code in Program.cs
der C# Console App Projektvorlage damit.
Dies erfordert eine Referenz zum Microsoft PowerPoint 16.0 Objektverzeichnis, dem Microsoft Excel 16.0 Objektverzeichnis und dem Microsoft Office 16.0 Objektverzeichnis (siehe C# für weitere Informationen).
Das Ausführen der Anwendung öffnet sichtbar Excel, lädt die Arbeitsmappe data.xlsx
, ändert den Wert in Zelle H3
, die mit dem ersten Wert der ersten Serie der Tabelle aus template.pptx
verknüpft ist, von i=1
auf 10
, erstellt eine neue Präsentation mit dem Diagramm in der aktualisierten Vorlage mit diesem Wert, das nicht mehr mit der Arbeitsmappe verknüpft ist, und speichert diese als output_i.pptx
im gleichen Verzeichnis wie die Vorlage.