2014-01-07 4 views
6

Ist das möglich - mit Apache POI - um den linken oder rechten Druckrand für die Excel-Tabelle einzustellen?Apache POI - Einstellen des linken/rechten Druckrandes in Excel

Die Standardmargen sind ziemlich groß. Ich kann nicht weder setLeftMargin noch setRightMargin in XSSFPrintSetup sehen, aber nur Kopf- und Fußzeile:

XSSFPrintSetup printSetup = (XSSFPrintSetup) sheet.getPrintSetup(); 
    printSetup.setHeaderMargin(0.5D); 
    printSetup.setFooterMargin(0.5D); 

Gibt es irgendeine Art Freund, der mir ein wenig helfen könnte?

Antwort

17

Die Bogenränder sind nicht im XSSFPrintSetup Objekt, sondern im XSSFSheet selbst enthalten. Verwenden Sie die Methoden SheetgetMargin und setMargin und übergeben Sie die entsprechende Konstante Sheet für die Ränder oben/links/unten/rechts/Kopfzeile/Fußzeile. Stellen Sie den Rand in Zoll ein.

double leftMarginInches = sheet.getMargin(Sheet.LeftMargin); 
sheet.setMargin(Sheet.RightMargin, 0.5 /* inches */); 
+0

eine Idee, warum dies nicht auf Diagrammblatt funktioniert? – Max

-2

Die Aufzählung ist jetzt MarginType.LeftMargin, -RightMargin

double leftMargin = sheet.GetMargin(MarginType.LeftMargin); 
double rightMargin = sheet.GetMargin(MarginType.RightMargin); 

Update:

Der Code diesen Code vorhergehenden ist:

  var workbook = new XSSFWorkbook(); 
      var sheet = workbook.CreateSheet(sheetname); 
      double leftMargin = sheet.GetMargin(MarginType.LeftMargin); 
      double rightMargin = sheet.GetMargin(MarginType.RightMargin); 

Dies ist in der Tat die NPOI.

+0

Sind Sie sicher, dass Sie hier über die gleiche Software sprechen? Nur die [Apache POI-Methode ist Sheet.getMargin nicht Sheet.GetMargin] (https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Sheet.html#getMargin%28short%29) und es gibt keine 'MarginType'-Enumeration, definiert in POI – Gagravarr

+0

Ja, ich habe etwas Code aus meinem Arbeitsbeispiel hinzugefügt, um den Ursprung zu demonstrieren. –

+0

Das OP hat seine Frage [tag: java] getaggt und fragt vermutlich eher nach Apache POI als nach NPOI. Daher scheint Ihre Antwort bestenfalls verwirrend oder im schlimmsten Fall einfach falsch zu sein:/ – Gagravarr