]> source.dussan.org Git - poi.git/commitdiff
applied patches #46004 and #46006 submitted by Gisella Bronzetti
authorYegor Kozlov <yegor@apache.org>
Fri, 17 Oct 2008 17:44:53 +0000 (17:44 +0000)
committerYegor Kozlov <yegor@apache.org>
Fri, 17 Oct 2008 17:44:53 +0000 (17:44 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@705684 13f79535-47bb-0310-9956-ffa450edef68

src/examples/src/org/apache/poi/xssf/usermodel/examples/FitSheetToOnePage.java
src/examples/src/org/apache/poi/xssf/usermodel/examples/HeadersAndFooters.java [new file with mode: 0755]
src/examples/src/org/apache/poi/xssf/usermodel/examples/HyperlinkExample.java [new file with mode: 0755]
src/examples/src/org/apache/poi/xssf/usermodel/examples/SelectedSheet.java [new file with mode: 0755]
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFHyperlink.java
src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFCellAlignment.java
src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFCellBorder.java
src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFCellFill.java

index b2186ba70261c730fc0fa728bdeb18e578c36042..e7fb42b4b29b938b599adcdf9e592a296c1f3ee2 100755 (executable)
@@ -1,3 +1,19 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
 package org.apache.poi.xssf.usermodel.examples;
 
 import java.io.FileOutputStream;
@@ -10,22 +26,21 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 public class FitSheetToOnePage {
 
 
-    public static void main(String[]args) throws Exception{
-       Workbook wb = new XSSFWorkbook();
-       Sheet sheet = wb.createSheet("format sheet");
-       PrintSetup ps = sheet.getPrintSetup();
+    public static void main(String[]args) throws Exception {
+        Workbook wb = new XSSFWorkbook();
+        Sheet sheet = wb.createSheet("format sheet");
+        PrintSetup ps = sheet.getPrintSetup();
 
-       sheet.setAutobreaks(true);
+        sheet.setAutobreaks(true);
 
-       ps.setFitHeight((short)1);
-       ps.setFitWidth((short)1);
+        ps.setFitHeight((short) 1);
+        ps.setFitWidth((short) 1);
 
+        // Create various cells and rows for spreadsheet.
 
-       // Create various cells and rows for spreadsheet.
-
-       FileOutputStream fileOut = new FileOutputStream("fitSheetToOnePage.xlsx");
-       wb.write(fileOut);
-       fileOut.close();
+        FileOutputStream fileOut = new FileOutputStream("fitSheetToOnePage.xlsx");
+        wb.write(fileOut);
+        fileOut.close();
 
     }
 }
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/HeadersAndFooters.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/HeadersAndFooters.java
new file mode 100755 (executable)
index 0000000..8c69500
--- /dev/null
@@ -0,0 +1,47 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+package org.apache.poi.xssf.usermodel.examples;
+
+import java.io.FileOutputStream;
+
+import org.apache.poi.ss.usermodel.Footer;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
+public class HeadersAndFooters {
+
+
+    public static void main(String[]args) throws Exception {
+        Workbook wb = new XSSFWorkbook();
+        Sheet sheet = wb.createSheet("format sheet");
+        sheet.createRow(0).createCell(0).setCellValue(123);
+
+        //set page numbers in the footer
+        Footer footer = sheet.getFooter();
+        //&P == current page number
+        //&N == page numbers
+        footer.setRight("Page &P of &N");
+
+        // Create various cells and rows for spreadsheet.
+
+        FileOutputStream fileOut = new FileOutputStream("pageNumerOnFooter.xlsx");
+        wb.write(fileOut);
+        fileOut.close();
+
+    }
+}
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/HyperlinkExample.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/HyperlinkExample.java
new file mode 100755 (executable)
index 0000000..71e871c
--- /dev/null
@@ -0,0 +1,95 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+package org.apache.poi.xssf.usermodel.examples;
+
+import java.io.FileOutputStream;
+
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.CreationHelper;
+import org.apache.poi.ss.usermodel.Font;
+import org.apache.poi.ss.usermodel.Hyperlink;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.apache.poi.xssf.usermodel.IndexedColors;
+
+/**
+ * Demonstrates how to create hyperlinks.
+ */
+public class HyperlinkExample {
+
+
+    public static void main(String[]args) throws Exception{
+        Workbook wb = new XSSFWorkbook();
+        CreationHelper createHelper = wb.getCreationHelper();
+
+        //cell style for hyperlinks
+        //by default hypelrinks are blue and underlined
+        CellStyle hlink_style = wb.createCellStyle();
+        Font hlink_font = wb.createFont();
+        hlink_font.setUnderline(Font.U_SINGLE);
+        hlink_font.setColor(IndexedColors.BLUE.getIndex());
+        hlink_style.setFont(hlink_font);
+
+        Cell cell;
+        Sheet sheet = wb.createSheet("Hyperlinks");
+        //URL
+        cell = sheet.createRow(0).createCell((short)0);
+        cell.setCellValue("URL Link");
+
+        Hyperlink link = createHelper.createHyperlink(Hyperlink.LINK_URL);
+        link.setAddress("http://poi.apache.org/");
+        cell.setHyperlink(link);
+        cell.setCellStyle(hlink_style);
+
+        //link to a file in the current directory
+        cell = sheet.createRow(1).createCell((short)0);
+        cell.setCellValue("File Link");
+        link = createHelper.createHyperlink(Hyperlink.LINK_FILE);
+        link.setAddress("link1.xls");
+        cell.setHyperlink(link);
+        cell.setCellStyle(hlink_style);
+
+        //e-mail link
+        cell = sheet.createRow(2).createCell((short)0);
+        cell.setCellValue("Email Link");
+        link = createHelper.createHyperlink(Hyperlink.LINK_EMAIL);
+        //note, if subject contains white spaces, make sure they are url-encoded
+        link.setAddress("mailto:poi@apache.org?subject=Hyperlinks");
+        cell.setHyperlink(link);
+        cell.setCellStyle(hlink_style);
+
+        //link to a place in this workbook
+
+        //create a target sheet and cell
+        Sheet sheet2 = wb.createSheet("Target Sheet");
+        sheet2.createRow(0).createCell((short)0).setCellValue("Target Cell");
+
+        cell = sheet.createRow(3).createCell((short)0);
+        cell.setCellValue("Worksheet Link");
+        Hyperlink link2 = createHelper.createHyperlink(Hyperlink.LINK_DOCUMENT);
+        link2.setAddress("'Target Sheet'!A1");
+        cell.setHyperlink(link2);
+        cell.setCellStyle(hlink_style);
+
+        FileOutputStream out = new FileOutputStream("hyperinks.xlsx");
+        wb.write(out);
+        out.close();
+
+    }
+}
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/SelectedSheet.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/SelectedSheet.java
new file mode 100755 (executable)
index 0000000..f79c416
--- /dev/null
@@ -0,0 +1,44 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+package org.apache.poi.xssf.usermodel.examples;
+
+import java.io.FileOutputStream;
+
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+
+public class SelectedSheet {
+
+    public static void main(String[]args) throws Exception {
+        Workbook wb = new XSSFWorkbook();
+        Sheet sheet = wb.createSheet("row sheet");
+
+        Sheet sheet2 = wb.createSheet("another sheet");
+        Sheet sheet3 = wb.createSheet(" sheet 3 ");
+        sheet3.setSelected(true);
+        wb.setActiveSheet(2);
+
+        // Create various cells and rows for spreadsheet.
+
+        FileOutputStream fileOut = new FileOutputStream("selectedSheet.xlsx");
+        wb.write(fileOut);
+        fileOut.close();
+    }
+
+}
index 8040dfcf22341b0cce393b570512f431702efac3..4ba42db8f4a1a395ad40be0064d34185b18d3275 100644 (file)
@@ -124,13 +124,25 @@ public class XSSFHyperlink implements Hyperlink {
        public String getLabel() {
                return ctHyperlink.getDisplay();
        }
+       public String getLocation() {
+               return ctHyperlink.getLocation();
+       }
        
        public void setLabel(String label) {
                ctHyperlink.setDisplay(label);
        }
+       
+       public void setLocation(String location){
+               ctHyperlink.setLocation(location);
+       }
+       
        public void setAddress(String address) {
                location = address;
-       }
+        //we must set location for internal hyperlinks 
+        if(type == Hyperlink.LINK_DOCUMENT){
+            setLocation(address);
+        }
+    }
 
        /**
         * Assigns this hyperlink to the given cell reference
index 5e448b6f0ab90b2a5ec0c63a9bf913bce3a35a58..8b2ee74d0ef512467d5268efb77eb88511ce9e55 100644 (file)
@@ -30,52 +30,129 @@ public class XSSFCellAlignment {
 
     private CTCellAlignment cellAlignement;
 
+    /**
+     * Creates a Cell Alignment from the supplied XML definition
+     *
+     * @param cellAlignment
+     */
     public XSSFCellAlignment(CTCellAlignment cellAlignment) {
         this.cellAlignement = cellAlignment;
     }
 
+    /**
+     * Get the type of vertical alignment for the cell
+     *
+     * @return the type of aligment
+     * @see VerticalAlignment
+     */
     public VerticalAlignment getVertical() {
         STVerticalAlignment.Enum align = cellAlignement.getVertical();
-        if(align == null) align = STVerticalAlignment.BOTTOM;
+        if (align == null) align = STVerticalAlignment.BOTTOM;
 
         return VerticalAlignment.values()[align.intValue() - 1];
     }
 
-    public void setVertical(VerticalAlignment vertical) {
-        cellAlignement.setVertical(STVerticalAlignment.Enum.forInt(vertical.ordinal() + 1));
+    /**
+     * Set the type of vertical alignment for the cell
+     *
+     * @param align - the type of alignment
+     * @see VerticalAlignment
+     */
+    public void setVertical(VerticalAlignment align) {
+        cellAlignement.setVertical(STVerticalAlignment.Enum.forInt(align.ordinal() + 1));
     }
 
+    /**
+     * Get the type of horizontal alignment for the cell
+     *
+     * @return the type of aligment
+     * @see HorizontalAlignment
+     */
     public HorizontalAlignment getHorizontal() {
         STHorizontalAlignment.Enum align = cellAlignement.getHorizontal();
-        if(align == null) align = STHorizontalAlignment.GENERAL;
+        if (align == null) align = STHorizontalAlignment.GENERAL;
 
         return HorizontalAlignment.values()[align.intValue() - 1];
     }
 
+    /**
+     * Set the type of horizontal alignment for the cell
+     *
+     * @param align - the type of alignment
+     * @see HorizontalAlignment
+     */
     public void setHorizontal(HorizontalAlignment align) {
         cellAlignement.setHorizontal(STHorizontalAlignment.Enum.forInt(align.ordinal() + 1));
     }
 
+    /**
+     * Get the number of spaces to indent the text in the cell
+     *
+     * @return indent - number of spaces
+     */
     public long getIndent() {
         return cellAlignement.getIndent();
     }
 
+    /**
+     * Set the number of spaces to indent the text in the cell
+     *
+     * @param indent - number of spaces
+     */
     public void setIndent(long indent) {
         cellAlignement.setIndent(indent);
     }
 
+    /**
+     * Get the degree of rotation for the text in the cell
+     * <p/>
+     * Expressed in degrees. Values range from 0 to 180. The first letter of
+     * the text is considered the center-point of the arc.
+     * <br/>
+     * For 0 - 90, the value represents degrees above horizon. For 91-180 the degrees below the
+     * horizon is calculated as:
+     * <br/>
+     * <code>[degrees below horizon] = 90 - textRotation.</code>
+     * </p>
+     *
+     * @return rotation degrees (between 0 and 180 degrees)
+     */
     public long getTextRotation() {
         return cellAlignement.getTextRotation();
     }
 
+    /**
+     * Set the degree of rotation for the text in the cell
+     * <p/>
+     * Expressed in degrees. Values range from 0 to 180. The first letter of
+     * the text is considered the center-point of the arc.
+     * <br/>
+     * For 0 - 90, the value represents degrees above horizon. For 91-180 the degrees below the
+     * horizon is calculated as:
+     * <br/>
+     * <code>[degrees below horizon] = 90 - textRotation.</code>
+     * </p>
+     *
+     * @param rotation - the rotation degrees (between 0 and 180 degrees)
+     */
     public void setTextRotation(long rotation) {
         cellAlignement.setTextRotation(rotation);
     }
 
+    /**
+     * Whether the text should be wrapped
+     *
+     * @return a boolean value indicating if the text in a cell should be line-wrapped within the cell.
+     */
     public boolean getWrapText() {
         return cellAlignement.getWrapText();
     }
 
+    /**
+     * Set whether the text should be wrapped
+     *
+     * @param wrapped a boolean value indicating if the text in a cell should be line-wrapped within the cell.
+     */
     public void setWrapText(boolean wrapped) {
         cellAlignement.setWrapText(wrapped);
     }
index cd61a4e5ace6fa8684343b084872d99570a90c86..0355aff69b39bfc8feaf205d4a7e61013c835495 100644 (file)
 package org.apache.poi.xssf.usermodel.extensions;
 
 
-import java.util.LinkedList;
-
+import org.apache.poi.xssf.usermodel.BorderStyle;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorder;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorderPr;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.STBorderStyle;
-import org.apache.poi.xssf.usermodel.BorderStyle;
-
 
+/**
+ * This element contains border formatting information, specifying border definition formats (left, right, top, bottom, diagonal)
+ * for cells in the workbook.
+ * Color is optional.
+ */
 public class XSSFCellBorder {
 
     private CTBorder border;
@@ -35,66 +37,103 @@ public class XSSFCellBorder {
     public XSSFCellBorder(CTBorder border) {
         this.border = border;
     }
+
     /**
      * Creates a new, empty Cell Border, on the
-     *  given Styles Table
+     * given Styles Table
      */
     public XSSFCellBorder() {
         border = CTBorder.Factory.newInstance();
     }
 
+    /**
+     * The enumeration value indicating the side being used for a cell border.
+     */
     public static enum BorderSide {
         TOP, RIGHT, BOTTOM, LEFT
     }
 
+    /**
+     * Returns the underlying XML bean.
+     *
+     * @return CTBorder
+     */
     public CTBorder getCTBorder() {
         return border;
     }
 
+    /**
+     * Get the type of border to use for the selected border
+     *
+     * @param side -  - where to apply the color definition
+     * @return borderstyle - the type of border to use. default value is NONE if border style is not set.
+     * @see BorderStyle
+     */
     public BorderStyle getBorderStyle(BorderSide side) {
         CTBorderPr ctBorder = getBorder(side);
         STBorderStyle.Enum border = ctBorder == null ? STBorderStyle.NONE : ctBorder.getStyle();
         return BorderStyle.values()[border.intValue() - 1];
     }
 
+    /**
+     * Set the type of border to use for the selected border
+     *
+     * @param side  -  - where to apply the color definition
+     * @param style - border style
+     * @see BorderStyle
+     */
     public void setBorderStyle(BorderSide side, BorderStyle style) {
         getBorder(side, true).setStyle(STBorderStyle.Enum.forInt(style.ordinal() + 1));
     }
 
+    /**
+     * Get the color to use for the selected border
+     *
+     * @param side - where to apply the color definition
+     * @return color - color to use as XSSFColor. null if color is not set
+     */
     public XSSFColor getBorderColor(BorderSide side) {
         CTBorderPr borderPr = getBorder(side);
         return borderPr != null && borderPr.isSetColor() ?
                 new XSSFColor(borderPr.getColor()) : null;
     }
 
+    /**
+     * Set the color to use for the selected border
+     *
+     * @param side  - where to apply the color definition
+     * @param color - the color to use
+     */
     public void setBorderColor(BorderSide side, XSSFColor color) {
         CTBorderPr borderPr = getBorder(side, true);
-        if(color == null) borderPr.unsetColor();
-        else borderPr.setColor(color.getCTColor());
+        if (color == null) borderPr.unsetColor();
+        else
+            borderPr.setColor(color.getCTColor());
     }
 
     private CTBorderPr getBorder(BorderSide side) {
         return getBorder(side, false);
     }
 
+
     private CTBorderPr getBorder(BorderSide side, boolean ensure) {
         CTBorderPr borderPr;
         switch (side) {
             case TOP:
                 borderPr = border.getTop();
-                if(ensure && borderPr == null) borderPr = border.addNewTop();
+                if (ensure && borderPr == null) borderPr = border.addNewTop();
                 break;
             case RIGHT:
                 borderPr = border.getRight();
-                if(ensure && borderPr == null) borderPr = border.addNewRight();
+                if (ensure && borderPr == null) borderPr = border.addNewRight();
                 break;
             case BOTTOM:
                 borderPr = border.getBottom();
-                if(ensure && borderPr == null) borderPr = border.addNewBottom();
+                if (ensure && borderPr == null) borderPr = border.addNewBottom();
                 break;
             case LEFT:
                 borderPr = border.getLeft();
-                if(ensure && borderPr == null) borderPr = border.addNewLeft();
+                if (ensure && borderPr == null) borderPr = border.addNewLeft();
                 break;
             default:
                 throw new IllegalArgumentException("No suitable side specified for the border");
@@ -103,14 +142,14 @@ public class XSSFCellBorder {
     }
 
 
-    public int hashCode(){
+    public int hashCode() {
         return border.toString().hashCode();
     }
 
-    public boolean equals(Object o){
-        if(!(o instanceof XSSFCellBorder)) return false;
+    public boolean equals(Object o) {
+        if (!(o instanceof XSSFCellBorder)) return false;
 
-        XSSFCellBorder cf = (XSSFCellBorder)o;
+        XSSFCellBorder cf = (XSSFCellBorder) o;
         return border.toString().equals(cf.getCTBorder().toString());
     }
 
index 29a9d08654d516c5dca0a4a3d9f1d8332dee3833..58c26c5ff14f4906ce64314fc8416a30895d0eeb 100644 (file)
 ==================================================================== */
 package org.apache.poi.xssf.usermodel.extensions;
 
-import java.util.List;
-
-import org.apache.poi.xssf.usermodel.IndexedColors;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFill;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPatternFill;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.STPatternType;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.STPatternType.Enum;
 
+/**
+ * This element specifies fill formatting.
+ * A cell fill consists of a background color, foreground color, and pattern to be applied across the cell.
+ */
 public final class XSSFCellFill {
-       
-       private CTFill _fill;
-       
-       public XSSFCellFill(CTFill fill) {
-               _fill = fill;
-       }
-       
-       public XSSFCellFill() {
-               _fill = CTFill.Factory.newInstance();
-       }
-       
-       public XSSFColor getFillBackgroundColor() {
+
+    private CTFill _fill;
+
+    /**
+     * Creates a CellFill from the supplied parts
+     *
+     * @param fill - fill
+     */
+    public XSSFCellFill(CTFill fill) {
+        _fill = fill;
+    }
+
+    /**
+     * Creates an empty CellFill
+     */
+    public XSSFCellFill() {
+        _fill = CTFill.Factory.newInstance();
+    }
+
+    /**
+     * Get the background fill color.
+     *
+     * @return fill color, null if color is not set
+     */
+    public XSSFColor getFillBackgroundColor() {
         CTPatternFill ptrn = _fill.getPatternFill();
-        if(ptrn == null) return null;
+        if (ptrn == null) return null;
 
         CTColor ctColor = ptrn.getBgColor();
-               return ctColor == null ? null : new XSSFColor(ctColor);
-       }
+        return ctColor == null ? null : new XSSFColor(ctColor);
+    }
 
+    /**
+     * Set the background fill color represented as a indexed color value.
+     *
+     * @param index
+     */
     public void setFillBackgroundColor(int index) {
         CTPatternFill ptrn = ensureCTPatternFill();
         CTColor ctColor = ptrn.isSetBgColor() ? ptrn.getBgColor() : ptrn.addNewBgColor();
         ctColor.setIndexed(index);
     }
 
+    /**
+     * Set the background fill color represented as a {@link XSSFColor} value.
+     *
+     * @param color
+     */
     public void setFillBackgroundColor(XSSFColor color) {
         CTPatternFill ptrn = ensureCTPatternFill();
         ptrn.setBgColor(color.getCTColor());
     }
 
+    /**
+     * Get the foreground fill color.
+     *
+     * @return XSSFColor - foreground color. null if color is not set
+     */
     public XSSFColor getFillForegroundColor() {
         CTPatternFill ptrn = _fill.getPatternFill();
-        if(ptrn == null) return null;
+        if (ptrn == null) return null;
 
         CTColor ctColor = ptrn.getFgColor();
         return ctColor == null ? null : new XSSFColor(ctColor);
     }
 
+    /**
+     * Set the foreground fill color as a indexed color value
+     *
+     * @param index - the color to use
+     */
     public void setFillForegroundColor(int index) {
         CTPatternFill ptrn = ensureCTPatternFill();
         CTColor ctColor = ptrn.isSetFgColor() ? ptrn.getFgColor() : ptrn.addNewFgColor();
         ctColor.setIndexed(index);
     }
 
+    /**
+     * Set the foreground fill color represented as a {@link XSSFColor} value.
+     *
+     * @param color - the color to use
+     */
     public void setFillForegroundColor(XSSFColor color) {
         CTPatternFill ptrn = ensureCTPatternFill();
         ptrn.setFgColor(color.getCTColor());
     }
 
-       public STPatternType.Enum getPatternType() {
+    /**
+     * get the fill pattern
+     *
+     * @return fill pattern type. null if fill pattern is not set
+     */
+    public STPatternType.Enum getPatternType() {
         CTPatternFill ptrn = _fill.getPatternFill();
-               return ptrn == null ? null : ptrn.getPatternType();
-       }
+        return ptrn == null ? null : ptrn.getPatternType();
+    }
 
+    /**
+     * set the fill pattern
+     *
+     * @param patternType fill pattern to use
+     */
     public void setPatternType(STPatternType.Enum patternType) {
         CTPatternFill ptrn = ensureCTPatternFill();
         ptrn.setPatternType(patternType);
     }
 
-       private CTPatternFill ensureCTPatternFill() {
-               CTPatternFill patternFill = _fill.getPatternFill();
-               if (patternFill == null) {
-                       patternFill = _fill.addNewPatternFill();
-               }
-               return patternFill;
-       }
-
-       public CTFill getCTFill() {
-               return _fill;
-       }
-       
-    public int hashCode(){
+    private CTPatternFill ensureCTPatternFill() {
+        CTPatternFill patternFill = _fill.getPatternFill();
+        if (patternFill == null) {
+            patternFill = _fill.addNewPatternFill();
+        }
+        return patternFill;
+    }
+
+    /**
+     * Returns the underlying XML bean.
+     *
+     * @return CTFill
+     */
+    public CTFill getCTFill() {
+        return _fill;
+    }
+
+
+    public int hashCode() {
         return _fill.toString().hashCode();
     }
 
-    public boolean equals(Object o){
-        if(!(o instanceof XSSFCellFill)) return false;
+    public boolean equals(Object o) {
+        if (!(o instanceof XSSFCellFill)) return false;
 
-        XSSFCellFill cf = (XSSFCellFill)o;
+        XSSFCellFill cf = (XSSFCellFill) o;
         return _fill.toString().equals(cf.getCTFill().toString());
     }
 }