]> source.dussan.org Git - poi.git/commitdiff
Bugzilla 52574 - support setting header / footer page margins in HSSF
authorYegor Kozlov <yegor@apache.org>
Mon, 27 Feb 2012 15:22:22 +0000 (15:22 +0000)
committerYegor Kozlov <yegor@apache.org>
Mon, 27 Feb 2012 15:22:22 +0000 (15:22 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1294181 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java

index cbd39ea9debfcf93d5678601c379e532204f561a..7bb0f71feb5db928ca7f27aa77bcb4675e253adc 100644 (file)
@@ -34,6 +34,8 @@
 
     <changes>
         <release version="3.8-beta6" date="2012-??-??">
+           <action dev="poi-developers" type="add">52574 - support setting header / footer page margins in HSSF </action>
+           <action dev="poi-developers" type="add">52583 - fixed WorkbookUtil#createSafeSheetName to escape colon </action>
            <action dev="poi-developers" type="add">51710 - fixed reading shared formulas in XSSF </action>
            <action dev="poi-developers" type="add">52708 - misc improvements in CellFormat </action>
            <action dev="poi-developers" type="add">52690 - added a getter for length of encrypted data in Ecma and Agile decryptors</action>
index a1bc0f36b7725b8278775e71613c32b42165e77b..48e87b85a83d1d7b147f8d60115eba0b62d58394 100644 (file)
@@ -1062,7 +1062,14 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
      * @return the size of the margin
      */
     public double getMargin(short margin) {
-        return _sheet.getPageSettings().getMargin(margin);
+        switch (margin){
+            case FooterMargin:
+                return _sheet.getPageSettings().getPrintSetup().getFooterMargin();
+            case HeaderMargin:
+                return _sheet.getPageSettings().getPrintSetup().getHeaderMargin();
+            default:
+                return _sheet.getPageSettings().getMargin(margin);
+        }
     }
 
     /**
@@ -1071,7 +1078,16 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
      * @param size the size of the margin
      */
     public void setMargin(short margin, double size) {
-        _sheet.getPageSettings().setMargin(margin, size);
+        switch (margin){
+            case FooterMargin:
+                _sheet.getPageSettings().getPrintSetup().setFooterMargin(size);
+                break;
+            case HeaderMargin:
+                _sheet.getPageSettings().getPrintSetup().setHeaderMargin(size);
+                break;
+            default:
+                _sheet.getPageSettings().setMargin(margin, size);
+        }
     }
 
     private WorksheetProtectionBlock getProtectionBlock() {
index 2d0566a3d339571e587bd3e9157708bd375e4b89..0235e4150f5c1b37542a44d634cf50b5a989bff3 100644 (file)
@@ -2673,7 +2673,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
             CTCellFormula sf = (CTCellFormula)f.copy();
             CellRangeAddress sfRef = CellRangeAddress.valueOf(sf.getRef());
             CellReference cellRef = new CellReference(cell);
-            // If the shared formula range preceeds the master cell then the preseeing part is discarded, e.g.
+            // If the shared formula range preceeds the master cell then the preceding  part is discarded, e.g.
             // if the cell is E60 and the shared formula range is C60:M85 then the effective range is E60:M85
             // see more details in https://issues.apache.org/bugzilla/show_bug.cgi?id=51710
             if(cellRef.getCol() > sfRef.getFirstColumn() || cellRef.getRow() > sfRef.getFirstRow()){
index bd2b8f3771a7faae971805b3fc9197274cef06e6..7a3c213bab2917f106603d78795984ac27830d1d 100644 (file)
@@ -557,6 +557,11 @@ public abstract class BaseTestSheet extends TestCase {
         sheet.setMargin(Sheet.BottomMargin, 13.0);
         assertEquals(13.0, sheet.getMargin(Sheet.BottomMargin), 0.0);
 
+        sheet.setMargin(Sheet.FooterMargin, 5.6);
+        assertEquals(5.6, sheet.getMargin(Sheet.FooterMargin), 0.0);
+        sheet.setMargin(Sheet.HeaderMargin, 11.5);
+        assertEquals(11.5, sheet.getMargin(Sheet.HeaderMargin), 0.0);
+
         // incorrect margin constant
         try {
             sheet.setMargin((short) 65, 15);