Class ThemesTable

java.lang.Object
org.apache.poi.ooxml.POIXMLDocumentPart
org.apache.poi.xssf.model.ThemesTable
All Implemented Interfaces:
Themes

public class ThemesTable extends POIXMLDocumentPart implements Themes
Class that represents theme of XLSX document. The theme includes specific colors and fonts.
  • Constructor Details

    • ThemesTable

      public ThemesTable()
      Create a new, empty ThemesTable
    • ThemesTable

      public ThemesTable(PackagePart part) throws IOException
      Construct a ThemesTable.
      Parameters:
      part - A PackagePart.
      Throws:
      IOException
      Since:
      POI 3.14-Beta1
    • ThemesTable

      public ThemesTable(org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument theme)
      Construct a ThemesTable from an existing ThemeDocument.
      Parameters:
      theme - A ThemeDocument.
  • Method Details

    • setColorMap

      protected void setColorMap(IndexedColorMap colorMap)
      called from StylesTable when setting theme, used to adjust colors if a custom indexed mapping is defined
      Parameters:
      colorMap -
    • getThemeColor

      public XSSFColor getThemeColor(int idx)
      Convert a theme "index" (as used by fonts etc) into a color.
      Specified by:
      getThemeColor in interface Themes
      Parameters:
      idx - A theme "index"
      Returns:
      The mapped XSSFColor, or null if not mapped.
    • inheritFromThemeAsRequired

      public void inheritFromThemeAsRequired(XSSFColor color)
      If the colour is based on a theme, then inherit information (currently just colours) from it as required.
      Specified by:
      inheritFromThemeAsRequired in interface Themes
    • writeTo

      public void writeTo(OutputStream out) throws IOException
      Write this table out as XML.
      Parameters:
      out - The stream to write to.
      Throws:
      IOException - if an error occurs while writing.
    • commit

      protected void commit() throws IOException
      Description copied from class: POIXMLDocumentPart
      Save the content in the underlying package part. Default implementation is empty meaning that the package part is left unmodified.

      Sub-classes should override and add logic to marshal the "model" into Ooxml4J.

      For example, the code saving a generic XML entry may look as follows:

       protected void commit() throws IOException {
         PackagePart part = getPackagePart();
         OutputStream out = part.getOutputStream();
         XmlObject bean = getXmlBean(); //the "model" which holds changes in memory
         bean.save(out, DEFAULT_XML_OPTIONS);
         out.close();
       }
       
      Overrides:
      commit in class POIXMLDocumentPart
      Throws:
      IOException - a subclass may throw an IOException if the changes can't be committed