mirror of https://github.com/apache/poi.git
start process of introducing an interface for Styles and Themes Tables
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1836732 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8085cddbc2
commit
2968daecdf
|
@ -34,6 +34,7 @@ import org.apache.poi.ooxml.util.SAXHelper;
|
||||||
import org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.SheetContentsHandler;
|
import org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.SheetContentsHandler;
|
||||||
import org.apache.poi.xssf.extractor.XSSFEventBasedExcelExtractor;
|
import org.apache.poi.xssf.extractor.XSSFEventBasedExcelExtractor;
|
||||||
import org.apache.poi.xssf.model.SharedStrings;
|
import org.apache.poi.xssf.model.SharedStrings;
|
||||||
|
import org.apache.poi.xssf.model.Styles;
|
||||||
import org.apache.poi.xssf.model.StylesTable;
|
import org.apache.poi.xssf.model.StylesTable;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFComment;
|
import org.apache.poi.xssf.usermodel.XSSFComment;
|
||||||
import org.xml.sax.ContentHandler;
|
import org.xml.sax.ContentHandler;
|
||||||
|
@ -180,7 +181,7 @@ public class XLSX2CSV {
|
||||||
* @throws SAXException if parsing the XML data fails.
|
* @throws SAXException if parsing the XML data fails.
|
||||||
*/
|
*/
|
||||||
public void processSheet(
|
public void processSheet(
|
||||||
StylesTable styles,
|
Styles styles,
|
||||||
SharedStrings strings,
|
SharedStrings strings,
|
||||||
SheetContentsHandler sheetHandler,
|
SheetContentsHandler sheetHandler,
|
||||||
InputStream sheetInputStream) throws IOException, SAXException {
|
InputStream sheetInputStream) throws IOException, SAXException {
|
||||||
|
|
|
@ -27,10 +27,7 @@ import org.apache.poi.ss.usermodel.RichTextString;
|
||||||
import org.apache.poi.ss.util.CellAddress;
|
import org.apache.poi.ss.util.CellAddress;
|
||||||
import org.apache.poi.util.POILogFactory;
|
import org.apache.poi.util.POILogFactory;
|
||||||
import org.apache.poi.util.POILogger;
|
import org.apache.poi.util.POILogger;
|
||||||
import org.apache.poi.xssf.model.Comments;
|
import org.apache.poi.xssf.model.*;
|
||||||
import org.apache.poi.xssf.model.CommentsTable;
|
|
||||||
import org.apache.poi.xssf.model.SharedStrings;
|
|
||||||
import org.apache.poi.xssf.model.StylesTable;
|
|
||||||
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
|
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFComment;
|
import org.apache.poi.xssf.usermodel.XSSFComment;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
|
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
|
||||||
|
@ -63,7 +60,7 @@ public class XSSFSheetXMLHandler extends DefaultHandler {
|
||||||
/**
|
/**
|
||||||
* Table with the styles used for formatting
|
* Table with the styles used for formatting
|
||||||
*/
|
*/
|
||||||
private StylesTable stylesTable;
|
private Styles stylesTable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table with cell comments
|
* Table with cell comments
|
||||||
|
@ -117,7 +114,7 @@ public class XSSFSheetXMLHandler extends DefaultHandler {
|
||||||
* @param strings Table of shared strings
|
* @param strings Table of shared strings
|
||||||
*/
|
*/
|
||||||
public XSSFSheetXMLHandler(
|
public XSSFSheetXMLHandler(
|
||||||
StylesTable styles,
|
Styles styles,
|
||||||
CommentsTable comments,
|
CommentsTable comments,
|
||||||
SharedStrings strings,
|
SharedStrings strings,
|
||||||
SheetContentsHandler sheetContentsHandler,
|
SheetContentsHandler sheetContentsHandler,
|
||||||
|
@ -140,7 +137,7 @@ public class XSSFSheetXMLHandler extends DefaultHandler {
|
||||||
* @param strings Table of shared strings
|
* @param strings Table of shared strings
|
||||||
*/
|
*/
|
||||||
public XSSFSheetXMLHandler(
|
public XSSFSheetXMLHandler(
|
||||||
StylesTable styles,
|
Styles styles,
|
||||||
SharedStrings strings,
|
SharedStrings strings,
|
||||||
SheetContentsHandler sheetContentsHandler,
|
SheetContentsHandler sheetContentsHandler,
|
||||||
DataFormatter dataFormatter,
|
DataFormatter dataFormatter,
|
||||||
|
@ -155,7 +152,7 @@ public class XSSFSheetXMLHandler extends DefaultHandler {
|
||||||
* @param strings Table of shared strings
|
* @param strings Table of shared strings
|
||||||
*/
|
*/
|
||||||
public XSSFSheetXMLHandler(
|
public XSSFSheetXMLHandler(
|
||||||
StylesTable styles,
|
Styles styles,
|
||||||
SharedStrings strings,
|
SharedStrings strings,
|
||||||
SheetContentsHandler sheetContentsHandler,
|
SheetContentsHandler sheetContentsHandler,
|
||||||
boolean formulasNotResults) {
|
boolean formulasNotResults) {
|
||||||
|
|
|
@ -39,10 +39,7 @@ import org.apache.poi.xssf.eventusermodel.ReadOnlySharedStringsTable;
|
||||||
import org.apache.poi.xssf.eventusermodel.XSSFReader;
|
import org.apache.poi.xssf.eventusermodel.XSSFReader;
|
||||||
import org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler;
|
import org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler;
|
||||||
import org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.SheetContentsHandler;
|
import org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.SheetContentsHandler;
|
||||||
import org.apache.poi.xssf.model.Comments;
|
import org.apache.poi.xssf.model.*;
|
||||||
import org.apache.poi.xssf.model.CommentsTable;
|
|
||||||
import org.apache.poi.xssf.model.SharedStrings;
|
|
||||||
import org.apache.poi.xssf.model.StylesTable;
|
|
||||||
import org.apache.poi.xssf.usermodel.XSSFComment;
|
import org.apache.poi.xssf.usermodel.XSSFComment;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFShape;
|
import org.apache.poi.xssf.usermodel.XSSFShape;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFSimpleShape;
|
import org.apache.poi.xssf.usermodel.XSSFSimpleShape;
|
||||||
|
@ -232,7 +229,7 @@ public class XSSFEventBasedExcelExtractor extends POIXMLTextExtractor
|
||||||
*/
|
*/
|
||||||
public void processSheet(
|
public void processSheet(
|
||||||
SheetContentsHandler sheetContentsExtractor,
|
SheetContentsHandler sheetContentsExtractor,
|
||||||
StylesTable styles,
|
Styles styles,
|
||||||
CommentsTable comments,
|
CommentsTable comments,
|
||||||
SharedStrings strings,
|
SharedStrings strings,
|
||||||
InputStream sheetInputStream)
|
InputStream sheetInputStream)
|
||||||
|
|
|
@ -0,0 +1,114 @@
|
||||||
|
package org.apache.poi.xssf.model;
|
||||||
|
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFFont;
|
||||||
|
import org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder;
|
||||||
|
import org.apache.poi.xssf.usermodel.extensions.XSSFCellFill;
|
||||||
|
|
||||||
|
public interface Styles {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get number format string given its id
|
||||||
|
*
|
||||||
|
* @param fmtId number format id
|
||||||
|
* @return number format code
|
||||||
|
*/
|
||||||
|
String getNumberFormatAt(short fmtId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Puts <code>fmt</code> in the numberFormats map if the format is not
|
||||||
|
* already in the the number format style table.
|
||||||
|
* Does nothing if <code>fmt</code> is already in number format style table.
|
||||||
|
*
|
||||||
|
* @param fmt the number format to add to number format style table
|
||||||
|
* @return the index of <code>fmt</code> in the number format style table
|
||||||
|
* @throws IllegalStateException if adding the number format to the styles table
|
||||||
|
* would exceed the max allowed.
|
||||||
|
*/
|
||||||
|
int putNumberFormat(String fmt);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a number format with a specific ID into the numberFormats map.
|
||||||
|
* If a format with the same ID already exists, overwrite the format code
|
||||||
|
* with <code>fmt</code>
|
||||||
|
* This may be used to override built-in number formats.
|
||||||
|
*
|
||||||
|
* @param index the number format ID
|
||||||
|
* @param fmt the number format code
|
||||||
|
*/
|
||||||
|
void putNumberFormat(short index, String fmt);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove a number format from the style table if it exists.
|
||||||
|
* All cell styles with this number format will be modified to use the default number format.
|
||||||
|
*
|
||||||
|
* @param index the number format id to remove
|
||||||
|
* @return true if the number format was removed
|
||||||
|
*/
|
||||||
|
boolean removeNumberFormat(short index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove a number format from the style table if it exists
|
||||||
|
* All cell styles with this number format will be modified to use the default number format
|
||||||
|
*
|
||||||
|
* @param fmt the number format to remove
|
||||||
|
* @return true if the number format was removed
|
||||||
|
*/
|
||||||
|
boolean removeNumberFormat(String fmt);
|
||||||
|
|
||||||
|
XSSFFont getFontAt(int idx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Records the given font in the font table.
|
||||||
|
* Will re-use an existing font index if this
|
||||||
|
* font matches another, EXCEPT if forced
|
||||||
|
* registration is requested.
|
||||||
|
* This allows people to create several fonts
|
||||||
|
* then customise them later.
|
||||||
|
* Note - End Users probably want to call
|
||||||
|
* {@link XSSFFont#registerTo(StylesTable)}
|
||||||
|
*/
|
||||||
|
int putFont(XSSFFont font, boolean forceRegistration);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Records the given font in the font table.
|
||||||
|
* Will re-use an existing font index if this
|
||||||
|
* font matches another.
|
||||||
|
*/
|
||||||
|
int putFont(XSSFFont font);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param idx style index
|
||||||
|
* @return XSSFCellStyle or null if idx is out of bounds for xfs array
|
||||||
|
*/
|
||||||
|
XSSFCellStyle getStyleAt(int idx);
|
||||||
|
|
||||||
|
int putStyle(XSSFCellStyle style);
|
||||||
|
|
||||||
|
XSSFCellBorder getBorderAt(int idx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a border to the border style table if it isn't already in the style table
|
||||||
|
* Does nothing if border is already in borders style table
|
||||||
|
*
|
||||||
|
* @param border border to add
|
||||||
|
* @return the index of the added border
|
||||||
|
*/
|
||||||
|
int putBorder(XSSFCellBorder border);
|
||||||
|
|
||||||
|
XSSFCellFill getFillAt(int idx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a fill to the fill style table if it isn't already in the style table
|
||||||
|
* Does nothing if fill is already in fill style table
|
||||||
|
*
|
||||||
|
* @param fill fill to add
|
||||||
|
* @return the index of the added fill
|
||||||
|
*/
|
||||||
|
int putFill(XSSFCellFill fill);
|
||||||
|
|
||||||
|
int getNumCellStyles();
|
||||||
|
|
||||||
|
int getNumDataFormats();
|
||||||
|
}
|
|
@ -56,7 +56,7 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.*;
|
||||||
/**
|
/**
|
||||||
* Table of styles shared across all sheets in a workbook.
|
* Table of styles shared across all sheets in a workbook.
|
||||||
*/
|
*/
|
||||||
public class StylesTable extends POIXMLDocumentPart {
|
public class StylesTable extends POIXMLDocumentPart implements Styles {
|
||||||
private final SortedMap<Short, String> numberFormats = new TreeMap<>();
|
private final SortedMap<Short, String> numberFormats = new TreeMap<>();
|
||||||
private final List<XSSFFont> fonts = new ArrayList<>();
|
private final List<XSSFFont> fonts = new ArrayList<>();
|
||||||
private final List<XSSFCellFill> fills = new ArrayList<>();
|
private final List<XSSFCellFill> fills = new ArrayList<>();
|
||||||
|
@ -261,6 +261,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
* @param fmtId number format id
|
* @param fmtId number format id
|
||||||
* @return number format code
|
* @return number format code
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public String getNumberFormatAt(short fmtId) {
|
public String getNumberFormatAt(short fmtId) {
|
||||||
return numberFormats.get(fmtId);
|
return numberFormats.get(fmtId);
|
||||||
}
|
}
|
||||||
|
@ -285,6 +286,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
* @throws IllegalStateException if adding the number format to the styles table
|
* @throws IllegalStateException if adding the number format to the styles table
|
||||||
* would exceed the {@link #MAXIMUM_NUMBER_OF_DATA_FORMATS} allowed.
|
* would exceed the {@link #MAXIMUM_NUMBER_OF_DATA_FORMATS} allowed.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int putNumberFormat(String fmt) {
|
public int putNumberFormat(String fmt) {
|
||||||
// Check if number format already exists
|
// Check if number format already exists
|
||||||
if (numberFormats.containsValue(fmt)) {
|
if (numberFormats.containsValue(fmt)) {
|
||||||
|
@ -334,6 +336,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
* @param index the number format ID
|
* @param index the number format ID
|
||||||
* @param fmt the number format code
|
* @param fmt the number format code
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void putNumberFormat(short index, String fmt) {
|
public void putNumberFormat(short index, String fmt) {
|
||||||
numberFormats.put(index, fmt);
|
numberFormats.put(index, fmt);
|
||||||
}
|
}
|
||||||
|
@ -345,6 +348,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
* @param index the number format id to remove
|
* @param index the number format id to remove
|
||||||
* @return true if the number format was removed
|
* @return true if the number format was removed
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean removeNumberFormat(short index) {
|
public boolean removeNumberFormat(short index) {
|
||||||
String fmt = numberFormats.remove(index);
|
String fmt = numberFormats.remove(index);
|
||||||
boolean removed = (fmt != null);
|
boolean removed = (fmt != null);
|
||||||
|
@ -366,11 +370,13 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
* @param fmt the number format to remove
|
* @param fmt the number format to remove
|
||||||
* @return true if the number format was removed
|
* @return true if the number format was removed
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean removeNumberFormat(String fmt) {
|
public boolean removeNumberFormat(String fmt) {
|
||||||
short id = getNumberFormatId(fmt);
|
short id = getNumberFormatId(fmt);
|
||||||
return removeNumberFormat(id);
|
return removeNumberFormat(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public XSSFFont getFontAt(int idx) {
|
public XSSFFont getFontAt(int idx) {
|
||||||
return fonts.get(idx);
|
return fonts.get(idx);
|
||||||
}
|
}
|
||||||
|
@ -385,6 +391,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
* Note - End Users probably want to call
|
* Note - End Users probably want to call
|
||||||
* {@link XSSFFont#registerTo(StylesTable)}
|
* {@link XSSFFont#registerTo(StylesTable)}
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int putFont(XSSFFont font, boolean forceRegistration) {
|
public int putFont(XSSFFont font, boolean forceRegistration) {
|
||||||
int idx = -1;
|
int idx = -1;
|
||||||
if(!forceRegistration) {
|
if(!forceRegistration) {
|
||||||
|
@ -399,6 +406,8 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
fonts.add(font);
|
fonts.add(font);
|
||||||
return idx;
|
return idx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int putFont(XSSFFont font) {
|
public int putFont(XSSFFont font) {
|
||||||
return putFont(font, false);
|
return putFont(font, false);
|
||||||
}
|
}
|
||||||
|
@ -408,6 +417,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
* @param idx style index
|
* @param idx style index
|
||||||
* @return XSSFCellStyle or null if idx is out of bounds for xfs array
|
* @return XSSFCellStyle or null if idx is out of bounds for xfs array
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public XSSFCellStyle getStyleAt(int idx) {
|
public XSSFCellStyle getStyleAt(int idx) {
|
||||||
int styleXfId = 0;
|
int styleXfId = 0;
|
||||||
|
|
||||||
|
@ -422,6 +432,8 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
|
|
||||||
return new XSSFCellStyle(idx, styleXfId, this, theme);
|
return new XSSFCellStyle(idx, styleXfId, this, theme);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int putStyle(XSSFCellStyle style) {
|
public int putStyle(XSSFCellStyle style) {
|
||||||
CTXf mainXF = style.getCoreXf();
|
CTXf mainXF = style.getCoreXf();
|
||||||
|
|
||||||
|
@ -431,6 +443,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
return xfs.indexOf(mainXF);
|
return xfs.indexOf(mainXF);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public XSSFCellBorder getBorderAt(int idx) {
|
public XSSFCellBorder getBorderAt(int idx) {
|
||||||
return borders.get(idx);
|
return borders.get(idx);
|
||||||
}
|
}
|
||||||
|
@ -442,6 +455,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
* @param border border to add
|
* @param border border to add
|
||||||
* @return the index of the added border
|
* @return the index of the added border
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int putBorder(XSSFCellBorder border) {
|
public int putBorder(XSSFCellBorder border) {
|
||||||
int idx = borders.indexOf(border);
|
int idx = borders.indexOf(border);
|
||||||
if (idx != -1) {
|
if (idx != -1) {
|
||||||
|
@ -452,6 +466,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
return borders.size() - 1;
|
return borders.size() - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public XSSFCellFill getFillAt(int idx) {
|
public XSSFCellFill getFillAt(int idx) {
|
||||||
return fills.get(idx);
|
return fills.get(idx);
|
||||||
}
|
}
|
||||||
|
@ -479,6 +494,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
* @param fill fill to add
|
* @param fill fill to add
|
||||||
* @return the index of the added fill
|
* @return the index of the added fill
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int putFill(XSSFCellFill fill) {
|
public int putFill(XSSFCellFill fill) {
|
||||||
int idx = fills.indexOf(fill);
|
int idx = fills.indexOf(fill);
|
||||||
if (idx != -1) {
|
if (idx != -1) {
|
||||||
|
@ -543,6 +559,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
/**
|
/**
|
||||||
* get the size of cell styles
|
* get the size of cell styles
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getNumCellStyles() {
|
public int getNumCellStyles() {
|
||||||
// Each cell style has a unique xfs entry
|
// Each cell style has a unique xfs entry
|
||||||
// Several might share the same styleXfs entry
|
// Several might share the same styleXfs entry
|
||||||
|
@ -552,6 +569,7 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||||
/**
|
/**
|
||||||
* @return number of data formats in the styles table
|
* @return number of data formats in the styles table
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getNumDataFormats() {
|
public int getNumDataFormats() {
|
||||||
return numberFormats.size();
|
return numberFormats.size();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package org.apache.poi.xssf.model;
|
||||||
|
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFColor;
|
||||||
|
|
||||||
|
public interface Themes {
|
||||||
|
/**
|
||||||
|
* Convert a theme "index" (as used by fonts etc) into a color.
|
||||||
|
* @param idx A theme "index"
|
||||||
|
* @return The mapped XSSFColor, or null if not mapped.
|
||||||
|
*/
|
||||||
|
XSSFColor getThemeColor(int idx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If the colour is based on a theme, then inherit
|
||||||
|
* information (currently just colours) from it as
|
||||||
|
* required.
|
||||||
|
*/
|
||||||
|
void inheritFromThemeAsRequired(XSSFColor color);
|
||||||
|
}
|
|
@ -34,7 +34,7 @@ import org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument;
|
||||||
* Class that represents theme of XLSX document. The theme includes specific
|
* Class that represents theme of XLSX document. The theme includes specific
|
||||||
* colors and fonts.
|
* colors and fonts.
|
||||||
*/
|
*/
|
||||||
public class ThemesTable extends POIXMLDocumentPart {
|
public class ThemesTable extends POIXMLDocumentPart implements Themes {
|
||||||
public enum ThemeElement {
|
public enum ThemeElement {
|
||||||
LT1(0, "Lt1"),
|
LT1(0, "Lt1"),
|
||||||
DK1(1,"Dk1"),
|
DK1(1,"Dk1"),
|
||||||
|
@ -110,6 +110,7 @@ public class ThemesTable extends POIXMLDocumentPart {
|
||||||
* @param idx A theme "index"
|
* @param idx A theme "index"
|
||||||
* @return The mapped XSSFColor, or null if not mapped.
|
* @return The mapped XSSFColor, or null if not mapped.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public XSSFColor getThemeColor(int idx) {
|
public XSSFColor getThemeColor(int idx) {
|
||||||
// Theme color references are NOT positional indices into the color scheme,
|
// Theme color references are NOT positional indices into the color scheme,
|
||||||
// i.e. these keys are NOT the same as the order in which theme colors appear
|
// i.e. these keys are NOT the same as the order in which theme colors appear
|
||||||
|
@ -150,6 +151,7 @@ public class ThemesTable extends POIXMLDocumentPart {
|
||||||
* information (currently just colours) from it as
|
* information (currently just colours) from it as
|
||||||
* required.
|
* required.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void inheritFromThemeAsRequired(XSSFColor color) {
|
public void inheritFromThemeAsRequired(XSSFColor color) {
|
||||||
if(color == null) {
|
if(color == null) {
|
||||||
// Nothing for us to do
|
// Nothing for us to do
|
||||||
|
|
Loading…
Reference in New Issue