Class XSSFCellStyle

java.lang.Object
org.apache.poi.xssf.usermodel.XSSFCellStyle
All Implemented Interfaces:
CellStyle

public class XSSFCellStyle extends Object implements CellStyle
High level representation of the the possible formatting information for the contents of the cells on a sheet in a SpreadsheetML document.
See Also:
  • Constructor Details

    • XSSFCellStyle

      public XSSFCellStyle(int cellXfId, int cellStyleXfId, StylesTable stylesSource, ThemesTable theme)
      Creates a Cell Style from the supplied parts
      Parameters:
      cellXfId - The main XF for the cell. Must be a valid 0-based index into the XF table
      cellStyleXfId - Optional, style xf. A value of -1 means no xf.
      stylesSource - Styles Source to work off
    • XSSFCellStyle

      public XSSFCellStyle(StylesTable stylesSource)
      Creates an empty Cell Style
  • Method Details

    • getCoreXf

      @Internal public org.openxmlformats.schemas.spreadsheetml.x2006.main.CTXf getCoreXf()
      Used so that StylesSource can figure out our location
    • getStyleXf

      @Internal public org.openxmlformats.schemas.spreadsheetml.x2006.main.CTXf getStyleXf()
      Used so that StylesSource can figure out our location
    • verifyBelongsToStylesSource

      public void verifyBelongsToStylesSource(StylesTable src)
      Verifies that this style belongs to the supplied Workbook Styles Source. Will throw an exception if it belongs to a different one. This is normally called when trying to assign a style to a cell, to ensure the cell and the style are from the same workbook (if they're not, it won't work)
      Throws:
      IllegalArgumentException - if there's a workbook mis-match
    • cloneStyleFrom

      public void cloneStyleFrom(CellStyle source)
      Clones all the style information from another XSSFCellStyle, onto this one. This XSSFCellStyle will then have all the same properties as the source, but the two may be edited independently. Any stylings on this XSSFCellStyle will be lost! The source XSSFCellStyle could be from another XSSFWorkbook if you like. This allows you to copy styles from one XSSFWorkbook to another.
      Specified by:
      cloneStyleFrom in interface CellStyle
    • getAlignment

      public HorizontalAlignment getAlignment()
      Description copied from interface: CellStyle
      get the type of horizontal alignment for the cell
      Specified by:
      getAlignment in interface CellStyle
      Returns:
      align - the type of alignment
    • getAlignmentEnum

      public HorizontalAlignment getAlignmentEnum()
      Description copied from interface: CellStyle
      get the type of horizontal alignment for the cell
      Specified by:
      getAlignmentEnum in interface CellStyle
      Returns:
      align - the type of alignment
    • getBorderBottom

      public BorderStyle getBorderBottom()
      Description copied from interface: CellStyle
      get the type of border to use for the bottom border of the cell
      Specified by:
      getBorderBottom in interface CellStyle
      Returns:
      border type
    • getBorderBottomEnum

      public BorderStyle getBorderBottomEnum()
      Description copied from interface: CellStyle
      get the type of border to use for the bottom border of the cell
      Specified by:
      getBorderBottomEnum in interface CellStyle
      Returns:
      border type
    • getBorderLeft

      public BorderStyle getBorderLeft()
      Description copied from interface: CellStyle
      get the type of border to use for the left border of the cell
      Specified by:
      getBorderLeft in interface CellStyle
      Returns:
      border type
    • getBorderLeftEnum

      public BorderStyle getBorderLeftEnum()
      Description copied from interface: CellStyle
      get the type of border to use for the left border of the cell
      Specified by:
      getBorderLeftEnum in interface CellStyle
      Returns:
      border type
    • getBorderRight

      public BorderStyle getBorderRight()
      Description copied from interface: CellStyle
      get the type of border to use for the right border of the cell
      Specified by:
      getBorderRight in interface CellStyle
      Returns:
      border type
    • getBorderRightEnum

      public BorderStyle getBorderRightEnum()
      Description copied from interface: CellStyle
      get the type of border to use for the right border of the cell
      Specified by:
      getBorderRightEnum in interface CellStyle
      Returns:
      border type
    • getBorderTop

      public BorderStyle getBorderTop()
      Description copied from interface: CellStyle
      get the type of border to use for the top border of the cell
      Specified by:
      getBorderTop in interface CellStyle
      Returns:
      border type
    • getBorderTopEnum

      public BorderStyle getBorderTopEnum()
      Description copied from interface: CellStyle
      get the type of border to use for the top border of the cell
      Specified by:
      getBorderTopEnum in interface CellStyle
      Returns:
      border type
    • getBottomBorderColor

      public short getBottomBorderColor()
      Get the color to use for the bottom border
      Color is optional. When missing, IndexedColors.AUTOMATIC is implied.
      Specified by:
      getBottomBorderColor in interface CellStyle
      Returns:
      the index of the color definition, default value is IndexedColors.AUTOMATIC
      See Also:
    • getBottomBorderXSSFColor

      public XSSFColor getBottomBorderXSSFColor()
      Get the color to use for the bottom border as a XSSFColor
      Returns:
      the used color or null if not set
    • getDataFormat

      public short getDataFormat()
      Get the index of the number format (numFmt) record used by this cell format.
      Specified by:
      getDataFormat in interface CellStyle
      Returns:
      the index of the number format
      See Also:
    • getDataFormatString

      public String getDataFormatString()
      Get the contents of the format string, by looking up the StylesSource
      Specified by:
      getDataFormatString in interface CellStyle
      Returns:
      the number format string
    • getFillBackgroundColor

      public short getFillBackgroundColor()
      Get the background fill color.

      Note - many cells are actually filled with a foreground fill, not a background fill - see getFillForegroundColor()

      Specified by:
      getFillBackgroundColor in interface CellStyle
      Returns:
      fill color, default value is IndexedColors.AUTOMATIC
      See Also:
    • getFillBackgroundColorColor

      public XSSFColor getFillBackgroundColorColor()
      Description copied from interface: CellStyle
      Gets the color object representing the current background fill, resolving indexes using the supplied workbook. This will work for both indexed and rgb defined colors.
      Specified by:
      getFillBackgroundColorColor in interface CellStyle
    • getFillBackgroundXSSFColor

      public XSSFColor getFillBackgroundXSSFColor()
      Get the background fill color.

      Note - many cells are actually filled with a foreground fill, not a background fill - see getFillForegroundColor()

      Returns:
      XSSFColor - fill color or null if not set
      See Also:
    • getFillForegroundColor

      public short getFillForegroundColor()
      Get the foreground fill color.

      Many cells are filled with this, instead of a background color (getFillBackgroundColor())

      Specified by:
      getFillForegroundColor in interface CellStyle
      Returns:
      fill color, default value is IndexedColors.AUTOMATIC
      See Also:
    • getFillForegroundColorColor

      public XSSFColor getFillForegroundColorColor()
      Description copied from interface: CellStyle
      Gets the color object representing the current foreground fill, resolving indexes using the supplied workbook. This will work for both indexed and rgb defined colors.
      Specified by:
      getFillForegroundColorColor in interface CellStyle
    • getFillForegroundXSSFColor

      public XSSFColor getFillForegroundXSSFColor()
      Get the foreground fill color.
      Returns:
      XSSFColor - fill color or null if not set
    • getFillPattern

      public FillPatternType getFillPattern()
      Description copied from interface: CellStyle
      Get the fill pattern
      Specified by:
      getFillPattern in interface CellStyle
      Returns:
      the fill pattern, default value is FillPatternType.NO_FILL
    • getFillPatternEnum

      public FillPatternType getFillPatternEnum()
      Description copied from interface: CellStyle
      Get the fill pattern
      Specified by:
      getFillPatternEnum in interface CellStyle
      Returns:
      the fill pattern, default value is FillPatternType.NO_FILL
    • getFont

      public XSSFFont getFont()
      Gets the font for this style
      Returns:
      Font - font
    • getFontIndex

      @Deprecated public short getFontIndex()
      Deprecated.
      Gets the index of the font for this style
      Specified by:
      getFontIndex in interface CellStyle
      Returns:
      short - font index
      See Also:
    • getFontIndexAsInt

      public int getFontIndexAsInt()
      Gets the index of the font for this style
      Specified by:
      getFontIndexAsInt in interface CellStyle
      Returns:
      short - font index
      Since:
      4.0.0
      See Also:
    • getHidden

      public boolean getHidden()
      Get whether the cell's using this style are to be hidden
      Specified by:
      getHidden in interface CellStyle
      Returns:
      boolean - whether the cell using this style is hidden
    • getIndention

      public short getIndention()
      Get the number of spaces to indent the text in the cell
      Specified by:
      getIndention in interface CellStyle
      Returns:
      indent - number of spaces
    • getIndex

      public short getIndex()
      Get the index within the StylesTable (sequence within the collection of CTXf elements)
      Specified by:
      getIndex in interface CellStyle
      Returns:
      unique index number of the underlying record this style represents, as a short (may wrap)
    • getUIndex

      protected int getUIndex()
      Workaround for places where we need to support more than 32767 cell styles, ideally the main getIndex() and others would return int, not short, but that would affect some public APIs
      Returns:
      unique index number of the underlying record this style represents, as an int (always positive)
    • getLeftBorderColor

      public short getLeftBorderColor()
      Get the color to use for the left border
      Specified by:
      getLeftBorderColor in interface CellStyle
      Returns:
      the index of the color definition, default value is IndexedColors.BLACK
      See Also:
    • getLeftBorderXSSFColor

      public XSSFColor getLeftBorderXSSFColor()
      Get the color to use for the left border
      Returns:
      the index of the color definition or null if not set
      See Also:
    • getLocked

      public boolean getLocked()
      Get whether the cell's using this style are locked
      Specified by:
      getLocked in interface CellStyle
      Returns:
      whether the cell using this style are locked
    • getQuotePrefixed

      public boolean getQuotePrefixed()
      Is "Quote Prefix" or "123 Prefix" enabled for the cell?
      Specified by:
      getQuotePrefixed in interface CellStyle
    • getRightBorderColor

      public short getRightBorderColor()
      Get the color to use for the right border
      Specified by:
      getRightBorderColor in interface CellStyle
      Returns:
      the index of the color definition, default value is IndexedColors.BLACK
      See Also:
    • getRightBorderXSSFColor

      public XSSFColor getRightBorderXSSFColor()
      Get the color to use for the right border
      Returns:
      the used color or null if not set
    • getRotation

      public short getRotation()
      Get the degree of rotation for the text in the cell

      Expressed in degrees. Values range from 0 to 180. The first letter of the text is considered the center-point of the arc.
      For 0 - 90, the value represents degrees above horizon. For 91-180 the degrees below the horizon is calculated as:
      [degrees below horizon] = 90 - textRotation.

      Specified by:
      getRotation in interface CellStyle
      Returns:
      rotation degrees (between 0 and 180 degrees)
    • getShrinkToFit

      public boolean getShrinkToFit()
      Description copied from interface: CellStyle
      Should the Cell be auto-sized by Excel to shrink it to fit if this text is too long?
      Specified by:
      getShrinkToFit in interface CellStyle
    • getTopBorderColor

      public short getTopBorderColor()
      Get the color to use for the top border
      Specified by:
      getTopBorderColor in interface CellStyle
      Returns:
      the index of the color definition, default value is IndexedColors.BLACK
      See Also:
    • getTopBorderXSSFColor

      public XSSFColor getTopBorderXSSFColor()
      Get the color to use for the top border
      Returns:
      the used color or null if not set
    • getVerticalAlignment

      public VerticalAlignment getVerticalAlignment()
      Description copied from interface: CellStyle
      get the type of vertical alignment for the cell
      Specified by:
      getVerticalAlignment in interface CellStyle
      Returns:
      align the type of alignment
    • getVerticalAlignmentEnum

      public VerticalAlignment getVerticalAlignmentEnum()
      Description copied from interface: CellStyle
      get the type of vertical alignment for the cell
      Specified by:
      getVerticalAlignmentEnum in interface CellStyle
      Returns:
      align the type of alignment
    • getWrapText

      public boolean getWrapText()
      Whether the text should be wrapped
      Specified by:
      getWrapText in interface CellStyle
      Returns:
      a boolean value indicating if the text in a cell should be line-wrapped within the cell.
    • setAlignment

      public void setAlignment(HorizontalAlignment align)
      Set the type of horizontal alignment for the cell
      Specified by:
      setAlignment in interface CellStyle
      Parameters:
      align - - the type of alignment
    • setBorderBottom

      public void setBorderBottom(BorderStyle border)
      Set the type of border to use for the bottom border of the cell
      Specified by:
      setBorderBottom in interface CellStyle
      Parameters:
      border - - type of border to use
      Since:
      POI 3.15
      See Also:
    • setBorderLeft

      public void setBorderLeft(BorderStyle border)
      Set the type of border to use for the left border of the cell
      Specified by:
      setBorderLeft in interface CellStyle
      Parameters:
      border - the type of border to use
      Since:
      POI 3.15
    • setBorderRight

      public void setBorderRight(BorderStyle border)
      Set the type of border to use for the right border of the cell
      Specified by:
      setBorderRight in interface CellStyle
      Parameters:
      border - the type of border to use
      Since:
      POI 3.15
    • setBorderTop

      public void setBorderTop(BorderStyle border)
      Set the type of border to use for the top border of the cell
      Specified by:
      setBorderTop in interface CellStyle
      Parameters:
      border - the type of border to use
      Since:
      POI 3.15
    • setBottomBorderColor

      public void setBottomBorderColor(short color)
      Set the color to use for the bottom border
      Specified by:
      setBottomBorderColor in interface CellStyle
      Parameters:
      color - the index of the color definition
      See Also:
    • setBottomBorderColor

      public void setBottomBorderColor(XSSFColor color)
      Set the color to use for the bottom border
      Parameters:
      color - the color to use, null means no color
    • setDataFormat

      public void setDataFormat(short fmt)
      Set the index of a data format
      Specified by:
      setDataFormat in interface CellStyle
      Parameters:
      fmt - the index of a data format
      See Also:
    • setDataFormat

      public void setDataFormat(int fmt)
      Set the index of a data format
      Parameters:
      fmt - the index of a data format
    • setFillBackgroundColor

      public void setFillBackgroundColor(XSSFColor color)
      Set the background fill color represented as a XSSFColor value.

      For example:

       cs.setFillPattern(XSSFCellStyle.FINE_DOTS );
       cs.setFillBackgroundXSSFColor(new XSSFColor(java.awt.Color.RED));
       
      optionally a Foreground and background fill can be applied: Note: Ensure Foreground color is set prior to background
       cs.setFillPattern(XSSFCellStyle.FINE_DOTS );
       cs.setFillForegroundColor(new XSSFColor(java.awt.Color.BLUE));
       cs.setFillBackgroundColor(new XSSFColor(java.awt.Color.GREEN));
       
      or, for the special case of SOLID_FILL:
       cs.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND );
       cs.setFillForegroundColor(new XSSFColor(java.awt.Color.GREEN));
       
      It is necessary to set the fill style in order for the color to be shown in the cell.
      Parameters:
      color - - the color to use
    • setFillBackgroundColor

      public void setFillBackgroundColor(short bg)
      Set the background fill color represented as a indexed color value.

      For example:

       cs.setFillPattern(XSSFCellStyle.FINE_DOTS );
       cs.setFillBackgroundXSSFColor(IndexedColors.RED.getIndex());
       
      optionally a Foreground and background fill can be applied: Note: Ensure Foreground color is set prior to background
       cs.setFillPattern(XSSFCellStyle.FINE_DOTS );
       cs.setFillForegroundColor(IndexedColors.BLUE.getIndex());
       cs.setFillBackgroundColor(IndexedColors.RED.getIndex());
       
      or, for the special case of SOLID_FILL:
       cs.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND );
       cs.setFillForegroundColor(IndexedColors.RED.getIndex());
       
      It is necessary to set the fill style in order for the color to be shown in the cell.
      Specified by:
      setFillBackgroundColor in interface CellStyle
      Parameters:
      bg - - the color to use
      See Also:
    • setFillForegroundColor

      public void setFillForegroundColor(XSSFColor color)
      Set the foreground fill color represented as a XSSFColor value.
      Note: Ensure Foreground color is set prior to background color.
      Parameters:
      color - the color to use
      See Also:
    • setFillForegroundColor

      public void setFillForegroundColor(short fg)
      Set the foreground fill color as a indexed color value
      Note: Ensure Foreground color is set prior to background color.
      Specified by:
      setFillForegroundColor in interface CellStyle
      Parameters:
      fg - the color to use
      See Also:
    • setReadingOrder

      public void setReadingOrder(ReadingOrder order)
      Set reading order for the cell
      Parameters:
      order - - the reading order
    • getReadingOrder

      public ReadingOrder getReadingOrder()
      Get reading order of the cell
      Returns:
      ReadingOrder - the reading order
    • setFillPattern

      public void setFillPattern(FillPatternType pattern)
      This element is used to specify cell fill information for pattern and solid color cell fills. For solid cell fills (no pattern), foreground color is used is used. For cell fills with patterns specified, then the cell fill color is specified by the background color element.
      Specified by:
      setFillPattern in interface CellStyle
      Parameters:
      pattern - the fill pattern to use
      See Also:
    • setFont

      public void setFont(Font font)
      Set the font for this style
      Specified by:
      setFont in interface CellStyle
      Parameters:
      font - a font object created or retrieved from the XSSFWorkbook object
      See Also:
    • setHidden

      public void setHidden(boolean hidden)
      Set the cell's using this style to be hidden
      Specified by:
      setHidden in interface CellStyle
      Parameters:
      hidden - - whether the cell using this style should be hidden
    • setIndention

      public void setIndention(short indent)
      Set the number of spaces to indent the text in the cell
      Specified by:
      setIndention in interface CellStyle
      Parameters:
      indent - - number of spaces
    • setLeftBorderColor

      public void setLeftBorderColor(short color)
      Set the color to use for the left border as a indexed color value
      Specified by:
      setLeftBorderColor in interface CellStyle
      Parameters:
      color - the index of the color definition
      See Also:
    • setLeftBorderColor

      public void setLeftBorderColor(XSSFColor color)
      Set the color to use for the left border as a XSSFColor value
      Parameters:
      color - the color to use
    • setLocked

      public void setLocked(boolean locked)
      Set the cell's using this style to be locked
      Specified by:
      setLocked in interface CellStyle
      Parameters:
      locked - - whether the cell using this style should be locked
    • setQuotePrefixed

      public void setQuotePrefixed(boolean quotePrefix)
      Turn on or off "Quote Prefix" or "123 Prefix" for the style, which is used to tell Excel that the thing which looks like a number or a formula shouldn't be treated as on.
      Specified by:
      setQuotePrefixed in interface CellStyle
    • setRightBorderColor

      public void setRightBorderColor(short color)
      Set the color to use for the right border
      Specified by:
      setRightBorderColor in interface CellStyle
      Parameters:
      color - the index of the color definition
      See Also:
    • setRightBorderColor

      public void setRightBorderColor(XSSFColor color)
      Set the color to use for the right border as a XSSFColor value
      Parameters:
      color - the color to use
    • setRotation

      public void setRotation(short rotation)
      Set the degree of rotation for the text in the cell

      Expressed in degrees. Values range from 0 to 180. The first letter of the text is considered the center-point of the arc.
      For 0 - 90, the value represents degrees above horizon. For 91-180 the degrees below the horizon is calculated as:
      [degrees below horizon] = 90 - textRotation.

      Note: HSSF uses values from -90 to 90 degrees, whereas XSSF uses values from 0 to 180 degrees. The implementations of this method will map between these two value-ranges accordingly, however the corresponding getter is returning values in the range mandated by the current type of Excel file-format that this CellStyle is applied to.
      Specified by:
      setRotation in interface CellStyle
      Parameters:
      rotation - - the rotation degrees (between 0 and 180 degrees)
    • setTopBorderColor

      public void setTopBorderColor(short color)
      Set the color to use for the top border
      Specified by:
      setTopBorderColor in interface CellStyle
      Parameters:
      color - the index of the color definition
      See Also:
    • setTopBorderColor

      public void setTopBorderColor(XSSFColor color)
      Set the color to use for the top border as a XSSFColor value
      Parameters:
      color - the color to use
    • setVerticalAlignment

      public void setVerticalAlignment(VerticalAlignment align)
      Set the type of vertical alignment for the cell
      Specified by:
      setVerticalAlignment in interface CellStyle
      Parameters:
      align - - the type of alignment
    • setWrapText

      public void setWrapText(boolean wrapped)
      Set whether the text should be wrapped.

      Setting this flag to true make all content visible whithin a cell by displaying it on multiple lines

      Specified by:
      setWrapText in interface CellStyle
      Parameters:
      wrapped - a boolean value indicating if the text in a cell should be line-wrapped within the cell.
    • getBorderColor

      public XSSFColor getBorderColor(XSSFCellBorder.BorderSide side)
      Gets border color
      Parameters:
      side - the border side
      Returns:
      the used color
    • setBorderColor

      public void setBorderColor(XSSFCellBorder.BorderSide side, XSSFColor color)
      Set the color to use for the selected border
      Parameters:
      side - - where to apply the color definition
      color - - the color to use
    • setShrinkToFit

      public void setShrinkToFit(boolean shrinkToFit)
      Description copied from interface: CellStyle
      Controls if the Cell should be auto-sized to shrink to fit if the text is too long
      Specified by:
      setShrinkToFit in interface CellStyle
    • getCellAlignment

      protected XSSFCellAlignment getCellAlignment()
      get the cellAlignment object to use for manage alignment
      Returns:
      XSSFCellAlignment - cell alignment
    • hashCode

      public int hashCode()
      Returns a hash code value for the object. The hash is derived from the underlying CTXf bean.
      Overrides:
      hashCode in class Object
      Returns:
      the hash code value for this style
    • equals

      public boolean equals(Object o)
      Checks is the supplied style is equal to this style
      Overrides:
      equals in class Object
      Parameters:
      o - the style to check
      Returns:
      true if the supplied style is equal to this style
    • clone

      public Object clone()
      Make a copy of this style. The underlying CTXf bean is cloned, the references to fills and borders remain.
      Overrides:
      clone in class Object
      Returns:
      a copy of this style