]> source.dussan.org Git - poi.git/commitdiff
Start on HSSF/XSSF Shrink To Fit support, see bug #55661
authorNick Burch <nick@apache.org>
Thu, 7 Nov 2013 22:28:06 +0000 (22:28 +0000)
committerNick Burch <nick@apache.org>
Thu, 7 Nov 2013 22:28:06 +0000 (22:28 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1539848 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/usermodel/HSSFCellStyle.java
src/java/org/apache/poi/ss/usermodel/CellStyle.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java
src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFCellAlignment.java

index 7c401a106c796628477a78a4b4cf4377d7546f43..07de7baf0f71e75240db13afbb68021c1bd6ce66 100644 (file)
@@ -18,7 +18,6 @@
 
 package org.apache.poi.hssf.usermodel;
 
-import java.util.Arrays;
 import java.util.List;
 
 import org.apache.poi.hssf.model.InternalWorkbook;
@@ -807,6 +806,21 @@ public final class HSSFCellStyle implements CellStyle {
        sr.setName(styleName);
     }
 
+    /**
+     * Controls if the Cell should be auto-sized
+     *  to shrink to fit if the text is too long
+     */
+    public void setShrinkToFit(boolean shrinkToFit) {
+       _format.setShrinkToFit(shrinkToFit);
+    }
+    /**
+     * Should the Cell be auto-sized by Excel to shrink
+     *  it to fit if this text is too long?
+     */
+    public boolean getShrinkToFit() {
+       return _format.getShrinkToFit();
+    }
+       
     /**
      * Verifies that this style belongs to the supplied Workbook.
      * Will throw an exception if it belongs to a different one.
index 3eed0604bd4b0e50fa0f9d65439f17b5a0277b3f..3e22bab10bc7b3bce6b971db1c186ebe4a5fae9a 100644 (file)
@@ -113,7 +113,7 @@ public interface CellStyle {
      * dot border
      */
 
-    public final static short BORDER_HAIR = 0x7;\r
+    public final static short BORDER_HAIR = 0x7;
 
     /**
      * Thick border
@@ -131,7 +131,7 @@ public interface CellStyle {
      * hair-line border
      */
 
-    public final static short BORDER_DOTTED = 0x4;\r
+    public final static short BORDER_DOTTED = 0x4;
 
     /**
      * Medium dashed border
@@ -701,4 +701,16 @@ public interface CellStyle {
      *  XSSFCellStyle)
      */
     public void cloneStyleFrom(CellStyle source);
-}
+    
+    /**
+     * Controls if the Cell should be auto-sized
+     *  to shrink to fit if the text is too long
+     */
+    public void setShrinkToFit(boolean shrinkToFit);
+
+    /**
+     * Should the Cell be auto-sized by Excel to shrink
+     *  it to fit if this text is too long?
+     */
+    public boolean getShrinkToFit();
+}
\ No newline at end of file
index 6f97d994a086538306184f692d506114954d9899..d1f075907849b4a76e8622ba4e69125afe80777c 100644 (file)
@@ -30,8 +30,8 @@ import org.apache.poi.xssf.model.StylesTable;
 import org.apache.poi.xssf.model.ThemesTable;
 import org.apache.poi.xssf.usermodel.extensions.XSSFCellAlignment;
 import org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder;
-import org.apache.poi.xssf.usermodel.extensions.XSSFCellFill;
 import org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder.BorderSide;
+import org.apache.poi.xssf.usermodel.extensions.XSSFCellFill;
 import org.apache.xmlbeans.XmlException;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorder;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorderPr;
@@ -668,6 +668,11 @@ public class XSSFCellStyle implements CellStyle {
         return (short)(align == null ? 0 : align.getTextRotation());
     }
 
+    public boolean getShrinkToFit() {
+        CTCellAlignment align = _cellXf.getAlignment();
+        return align != null && align.getShrinkToFit();
+    }
+    
     /**
      * Get the color to use for the top border
      *
@@ -1390,6 +1395,11 @@ public class XSSFCellStyle implements CellStyle {
                 break;
         }
     }
+    
+    public void setShrinkToFit(boolean shrinkToFit) {
+        getCellAlignment().setShrinkToFit(shrinkToFit);
+    }
+
     private int getFontId() {
         if (_cellXf.isSetFontId()) {
             return (int) _cellXf.getFontId();
index ccc1b30a4fd02af8b0cba6bb4164ebfe8fbf8317..233616c83368931397ef259ca77285817db31ea0 100644 (file)
 ==================================================================== */
 package org.apache.poi.xssf.usermodel.extensions;
 
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellAlignment;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.STHorizontalAlignment;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.STVerticalAlignment;
 import org.apache.poi.ss.usermodel.HorizontalAlignment;
 import org.apache.poi.ss.usermodel.VerticalAlignment;
 import org.apache.poi.util.Internal;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellAlignment;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.STHorizontalAlignment;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.STVerticalAlignment;
 
 
 /**
- * Cell settings avaiable in the Format/Alignment tab
+ * Cell settings available in the Format/Alignment tab
  */
 public class XSSFCellAlignment {
-
     private CTCellAlignment cellAlignement;
 
     /**
@@ -158,6 +157,14 @@ public class XSSFCellAlignment {
         cellAlignement.setWrapText(wrapped);
     }
 
+    public boolean getShrinkToFit() {
+       return cellAlignement.getShrinkToFit();
+    }
+    
+    public void setShrinkToFit(boolean shrink) {
+       cellAlignement.setShrinkToFit(shrink);
+    }
+    
     /**
      * Access to low-level data
      */