Apache POI - Wie kann die Datei in Excel auf "Alle Spalten auf einer Seite anpassen" gesetzt werden?

8

Ich habe eine Anforderung, wo Dateien, die von Apache POI generiert werden, eine Datei mit dem Alle Spalten auf einer Seite anpassen gesetzt. Ich habe eine Reihe von Variationen mit der API ausprobiert, aber bisher konnte ich es nicht machen. Ich kann auch nicht wirklich herausfinden, ob es möglich ist.

Es sieht so aus, als ob die Funktion setFitToPage(true) sowohl die Höhe als auch die Breite verändert und nicht nur die Breite, die ich möchte. Die Verwendung von setFitWidth und setFitHeight , wie ich in verschiedenen anderen Stack-Überlauf-Fragen finde, scheint nichts zu beeinflussen.

Hier ist was ich bisher habe:

%Vor%     
superbAfterSemperPhi 05.04.2016, 17:16
quelle

1 Antwort

13

Es ist nicht der Aufruf von setFitToPage(true) , der bewirkt, dass Excel sowohl die Höhe als auch die Breite an eine Seite anpasst. Dieser Aufruf ist notwendig, aber aus einem anderen Grund. Auf dem Bildschirm "Seite einrichten" von Excel steuert dieser Methodenaufruf, welcher Radiobutton im Dialogfeld aktiv ist. Der Wert true setzt den Radiobutton für "Fit to:", so dass Sie die Seite (n) seitenweise (s) hoch skalieren können. Der Wert false setzt den Radiobutton für "Anpassen an:", Prozent normale Größe.

In diesem Fall möchten Sie es auf 1 Seite Breite um "egal" Seiten groß anpassen. Der Wert für Seiten groß ( setFitHeight Methode) ist 0 hier.

%Vor%

Wenn ich ein Workbook mit einem Sheet mit diesen Einstellungen ausschreibe, und ich es in Excel öffne, hat das Dialogfeld "Seite einrichten" das Optionsfeld "Anpassen an:" ausgewählt und "1 Seite (n) weit (leer) groß ". Im Bildschirm "Druckvorschau" wird in den Druckeinstellungen die Option "Alle Spalten auf einer Seite anpassen" ausgewählt.

    
rgettman 05.04.2016, 17:53
quelle

Tags und Links