Funktionierende Lösung für die Größenanpassung von Arbeitsblättern
Hintergrund
Im Artikel Hinzufügen von Ole-Frames haben wir erklärt, wie man einen Ole-Frame in einer PowerPoint-Präsentation mit Aspose.Slides für Java hinzufügt. Um das Problem mit dem Objektänderung zu berücksichtigen, haben wir das Arbeitsblattbild des ausgewählten Bereichs dem OLE-Objektrahmen des Diagramms zugewiesen. In der Ausgabepräsentation wird, wenn wir doppelt auf den OLE-Objektrahmen klicken, der das Arbeitsblattbild zeigt, das Excel-Diagramm aktiviert. Die Endbenutzer können beliebige gewünschte Änderungen in der tatsächlichen Excel-Arbeitsmappe vornehmen und dann durch Klicken außerhalb der aktivierten Excel-Arbeitsmappe zur betreffenden Folie zurückkehren. Die Größe des OLE-Objektrahmens ändert sich, wenn der Benutzer zur Folie zurückkehrt. Der Skalierungsfaktor wird für unterschiedliche Größen des OLE-Objektrahmens und der eingebetteten Excel-Arbeitsmappe unterschiedlich sein.
Ursache der Größenanpassung
Da die Excel-Arbeitsmappe ihre eigene Fenstergröße hat, versucht sie, ihre ursprüngliche Größe bei der erstmaligen Aktivierung beizubehalten. Auf der anderen Seite wird der OLE-Objektrahmen seine eigene Größe haben. Laut Microsoft verhandeln bei der Aktivierung der Excel-Arbeitsmappe Excel und PowerPoint die Größe und sorgen dafür, dass sie im richtigen Verhältnis als Teil des Einbettungsbetriebs ist. Basierend auf den Unterschieden in der Fenstergröße von Excel und der Größe / Position des OLE-Objektrahmens erfolgt die Größenanpassung.
Funktionierende Lösung
Es gibt zwei mögliche Lösungen, um den Größenanpassungseffekt zu vermeiden.* Skaliere die Ole-Frame-Größe in PPT, um die Größe in Bezug auf Höhe/Breite der gewünschten Anzahl von Zeilen/Spalten im Ole-Frame zu entsprechen.* Halte die Ole-Frame-Größe konstant und skaliere die Größe der beteiligten Zeilen/Spalten, um in die ausgewählte Ole-Frame-Größe zu passen.
Skalieren der Ole-Frame-Größe auf die Größe der ausgewählten Zeilen/Spalten des Arbeitsblatts
In diesem Ansatz lernen wir, wie man die Ole-Frame-Größe der eingebetteten Excel-Arbeitsmappe entsprechend der kumulierten Größe der beteiligten Zeilen und Spalten im Excel-Arbeitsblatt festlegt.
Beispiel
Angenommen, wir haben ein Vorlagen-Excel-Blatt definiert und wünschen uns, das als Ole-Frame zur Präsentation hinzuzufügen. In diesem Szenario wird die Größe des OLE-Objektrahmens zunächst basierend auf der kumulierten Höhe der Zeilen und der Breite der Spalten der beteiligten Arbeitsmappenzeilen und -spalten berechnet. Dann setzen wir die Größe des Ole-Rahmens auf den berechneten Wert. Um die rote Eingebettetes Objekt-Nachricht für den Ole-Rahmen in PowerPoint zu vermeiden, werden wir auch das Bild der gewünschten Bereiche von Zeilen und Spalten in der Arbeitsmappe erfassen und das als Ole-Frame-Bild festlegen.
Skalieren der Zeilenhöhe und Spaltenbreite des Arbeitsblatts entsprechend der Ole-Frame-Größe
In diesem Ansatz lernen wir, wie man die Höhen der beteiligten Zeilen und die Breite der beteiligten Spalten gemäß der benutzerdefinierten Ole-Frame-Größe skaliert.
Beispiel
Angenommen, wir haben ein Vorlagen-Excel-Blatt definiert und wünschen uns, das als Ole-Frame zur Präsentation hinzuzufügen. In diesem Szenario werden wir die Größe des Ole-Rahmens festlegen und die Größe der Zeilen und Spalten, die im Ole-Frame-Bereich teilnehmen, skalieren. Dann speichern wir die Arbeitsmappe im Stream, um Änderungen zu speichern und konvertieren sie in ein Byte-Array, um sie im Ole-Rahmen hinzuzufügen. Um die rote Eingebettetes Objekt-Nachricht für den Ole-Rahmen in PowerPoint zu vermeiden, werden wir auch das Bild der gewünschten Bereiche von Zeilen und Spalten in der Arbeitsmappe erfassen und das als Ole-Frame-Bild festlegen.