XSSFCellStyle style;
XSSFFont titleFont = wb.createFont();
titleFont.setFontHeightInPoints((short)48);
- titleFont.setColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ titleFont.setColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
XSSFFont monthFont = wb.createFont();
monthFont.setFontHeightInPoints((short)12);
- monthFont.setColor(new XSSFColor(new java.awt.Color(255, 255, 255)));
+ monthFont.setColor(new XSSFColor(new java.awt.Color(255, 255, 255), wb.getStylesSource().getIndexedColors()));
monthFont.setBold(true);
style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
- style.setFillForegroundColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setFillForegroundColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setFont(monthFont);
styles.put("month", style);
style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.LEFT);
style.setVerticalAlignment(VerticalAlignment.TOP);
- style.setFillForegroundColor(new XSSFColor(new java.awt.Color(228, 232, 243)));
+ style.setFillForegroundColor(new XSSFColor(new java.awt.Color(228, 232, 243), wb.getStylesSource().getIndexedColors()));
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setBorderLeft(BorderStyle.THIN);
- style.setLeftBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setLeftBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
style.setBorderBottom(BorderStyle.THIN);
- style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
style.setFont(dayFont);
styles.put("weekend_left", style);
style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.TOP);
- style.setFillForegroundColor(new XSSFColor(new java.awt.Color(228, 232, 243)));
+ style.setFillForegroundColor(new XSSFColor(new java.awt.Color(228, 232, 243), wb.getStylesSource().getIndexedColors()));
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setBorderRight(BorderStyle.THIN);
- style.setRightBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setRightBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
style.setBorderBottom(BorderStyle.THIN);
- style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
styles.put("weekend_right", style);
style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.LEFT);
style.setVerticalAlignment(VerticalAlignment.TOP);
style.setBorderLeft(BorderStyle.THIN);
- style.setFillForegroundColor(new XSSFColor(new java.awt.Color(255, 255, 255)));
+ style.setFillForegroundColor(new XSSFColor(new java.awt.Color(255, 255, 255), wb.getStylesSource().getIndexedColors()));
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
- style.setLeftBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setLeftBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
style.setBorderBottom(BorderStyle.THIN);
- style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
style.setFont(dayFont);
styles.put("workday_left", style);
style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.TOP);
- style.setFillForegroundColor(new XSSFColor(new java.awt.Color(255, 255, 255)));
+ style.setFillForegroundColor(new XSSFColor(new java.awt.Color(255, 255, 255), wb.getStylesSource().getIndexedColors()));
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setBorderRight(BorderStyle.THIN);
- style.setRightBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setRightBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
style.setBorderBottom(BorderStyle.THIN);
- style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
styles.put("workday_right", style);
style = wb.createCellStyle();
style.setBorderLeft(BorderStyle.THIN);
- style.setFillForegroundColor(new XSSFColor(new java.awt.Color(234, 234, 234)));
+ style.setFillForegroundColor(new XSSFColor(new java.awt.Color(234, 234, 234), wb.getStylesSource().getIndexedColors()));
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setBorderBottom(BorderStyle.THIN);
- style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
styles.put("grey_left", style);
style = wb.createCellStyle();
- style.setFillForegroundColor(new XSSFColor(new java.awt.Color(234, 234, 234)));
+ style.setFillForegroundColor(new XSSFColor(new java.awt.Color(234, 234, 234), wb.getStylesSource().getIndexedColors()));
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setBorderRight(BorderStyle.THIN);
- style.setRightBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setRightBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
style.setBorderBottom(BorderStyle.THIN);
- style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89)));
+ style.setBottomBorderColor(new XSSFColor(new java.awt.Color(39, 51, 89), wb.getStylesSource().getIndexedColors()));
styles.put("grey_right", style);
return styles;
XSSFFont font1 = wb.createFont();
font1.setBold(true);
- font1.setColor(new XSSFColor(new java.awt.Color(255, 0, 0)));
+ font1.setColor(new XSSFColor(new java.awt.Color(255, 0, 0), wb.getStylesSource().getIndexedColors()));
rt.applyFont(0, 10, font1);
XSSFFont font2 = wb.createFont();
font2.setItalic(true);
font2.setUnderline(XSSFFont.U_DOUBLE);
- font2.setColor(new XSSFColor(new java.awt.Color(0, 255, 0)));
+ font2.setColor(new XSSFColor(new java.awt.Color(0, 255, 0), wb.getStylesSource().getIndexedColors()));
rt.applyFont(10, 19, font2);
XSSFFont font3 = wb.createFont();
- font3.setColor(new XSSFColor(new java.awt.Color(0, 0, 255)));
+ font3.setColor(new XSSFColor(new java.awt.Color(0, 0, 255), wb.getStylesSource().getIndexedColors()));
rt.append(" Jumped over the lazy dog", font3);
cell.setCellValue(rt);
}
private XSSFColor getColor(CTBorderPr pr) {
- return pr == null ? null : new XSSFColor(pr.getColor(), _colorMap);
+ return pr == null ? null : XSSFColor.from(pr.getColor(), _colorMap);
}
}
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorder;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorderPr;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellAlignment;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFill;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFont;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPatternFill;
*/
@Override
public void setBottomBorderColor(short color) {
- XSSFColor clr = new XSSFColor();
+ XSSFColor clr = XSSFColor.from(CTColor.Factory.newInstance(), _stylesSource.getIndexedColors());
clr.setIndexed(color);
setBottomBorderColor(clr);
}
*/
@Override
public void setFillBackgroundColor(short bg) {
- XSSFColor clr = new XSSFColor();
+ XSSFColor clr = XSSFColor.from(CTColor.Factory.newInstance(), _stylesSource.getIndexedColors());
clr.setIndexed(bg);
setFillBackgroundColor(clr);
}
*/
@Override
public void setFillForegroundColor(short fg) {
- XSSFColor clr = new XSSFColor();
+ XSSFColor clr = XSSFColor.from(CTColor.Factory.newInstance(), _stylesSource.getIndexedColors());
clr.setIndexed(fg);
setFillForegroundColor(clr);
}
*/
@Override
public void setLeftBorderColor(short color) {
- XSSFColor clr = new XSSFColor();
+ XSSFColor clr = XSSFColor.from(CTColor.Factory.newInstance(), _stylesSource.getIndexedColors());
clr.setIndexed(color);
setLeftBorderColor(clr);
}
*/
@Override
public void setRightBorderColor(short color) {
- XSSFColor clr = new XSSFColor();
+ XSSFColor clr = XSSFColor.from(CTColor.Factory.newInstance(), _stylesSource.getIndexedColors());
clr.setIndexed(color);
setRightBorderColor(clr);
}
*/
@Override
public void setTopBorderColor(short color) {
- XSSFColor clr = new XSSFColor();
+ XSSFColor clr = XSSFColor.from(CTColor.Factory.newInstance(), _stylesSource.getIndexedColors());
clr.setIndexed(color);
setTopBorderColor(clr);
}
private final CTColor ctColor;
private final IndexedColorMap indexedColorMap;
+ /**
+ * @param color
+ * @param map
+ * @return null if color is null, new instance otherwise
+ */
+ public static XSSFColor from(CTColor color, IndexedColorMap map) {
+ return color == null ? null : new XSSFColor(color, map);
+ }
+
/**
* Create an instance of XSSFColor from the supplied XML bean, with default color indexes
* @param color The {@link CTColor} to use as color-value.
* Create an instance of XSSFColor from the supplied XML bean, with the given color indexes
* @param color The {@link CTColor} to use as color-value.
* @param map The IndexedColorMap to use instead of the default one
+ * @deprecated 4.0.0 - use the factory {@link #from(CTColor, IndexedColorMap)} method instead to check for null CTColor instances. Make private eventually
*/
+ @Deprecated
public XSSFColor(CTColor color, IndexedColorMap map) {
this.ctColor = color;
this.indexedColorMap = map;
/**
* Create an new instance of XSSFColor, without knowledge of any custom indexed colors.
* This is OK for just transiently setting indexes, etc. but is discouraged in read/get uses
+ * @deprecated as of 4.0.0, we want to have the indexed map, and all calling contexts have access to it.
+ * @see #XSSFColor(IndexedColorMap)
+ * @see #from(CTColor, IndexedColorMap)
*/
+ @Deprecated
+ @Removal(version="4.1")
public XSSFColor() {
- this(CTColor.Factory.newInstance(), null);
+ this(CTColor.Factory.newInstance(), new DefaultIndexedColorMap());
}
/**
- * TEST ONLY - does not know about custom indexed colors
+ * new color with the given indexed color map
+ * @param colorMap
+ */
+ public XSSFColor(IndexedColorMap colorMap) {
+ this(CTColor.Factory.newInstance(), colorMap);
+ }
+
+ /**
+ * TEST ONLY
* @param clr awt Color
+ * @param map
*/
- public XSSFColor(java.awt.Color clr) {
- this();
+ public XSSFColor(java.awt.Color clr, IndexedColorMap map) {
+ this(map);
setColor(clr);
}
CTColor[] ctcols = _scale.getColorArray();
XSSFColor[] c = new XSSFColor[ctcols.length];
for (int i=0; i<ctcols.length; i++) {
- c[i] = new XSSFColor(ctcols[i], _indexedColorMap);
+ c[i] = XSSFColor.from(ctcols[i], _indexedColorMap);
}
return c;
}
* @return color from scale
*/
public XSSFColor createColor() {
- return new XSSFColor(_scale.addNewColor(), _indexedColorMap);
+ return XSSFColor.from(_scale.addNewColor(), _indexedColorMap);
}
public XSSFConditionalFormattingThreshold createThreshold() {
return new XSSFConditionalFormattingThreshold(_scale.addNewCfvo());
@Override
public XSSFColor createExtendedColor() {
- return new XSSFColor(CTColor.Factory.newInstance(), workbook.getStylesSource().getIndexedColors());
+ return XSSFColor.from(CTColor.Factory.newInstance(), workbook.getStylesSource().getIndexedColors());
}
/**
}
public XSSFColor getColor() {
- return new XSSFColor(_databar.getColor(), _colorMap);
+ return XSSFColor.from(_databar.getColor(), _colorMap);
}
public void setColor(Color color) {
_databar.setColor( ((XSSFColor)color).getCTColor() );
public XSSFColor getXSSFColor() {
CTColor ctColor = _ctFont.sizeOfColorArray() == 0 ? null : _ctFont.getColorArray(0);
if(ctColor != null) {
- XSSFColor color = new XSSFColor(ctColor, _indexedColorMap);
+ XSSFColor color = XSSFColor.from(ctColor, _indexedColorMap);
if(_themes != null) {
_themes.inheritFromThemeAsRequired(color);
}
public XSSFColor getFontColor() {
if(_font.sizeOfColorArray() == 0) return null;
- return new XSSFColor(_font.getColorArray(0), _colorMap);
+ return XSSFColor.from(_font.getColorArray(0), _colorMap);
}
@Override
public XSSFColor getFillBackgroundColorColor() {
if(!_fill.isSetPatternFill()) return null;
- return new XSSFColor(_fill.getPatternFill().getBgColor(), _colorMap);
+ return XSSFColor.from(_fill.getPatternFill().getBgColor(), _colorMap);
}
public XSSFColor getFillForegroundColorColor() {
if(!_fill.isSetPatternFill() || ! _fill.getPatternFill().isSetFgColor())
return null;
- return new XSSFColor(_fill.getPatternFill().getFgColor(), _colorMap);
+ return XSSFColor.from(_fill.getPatternFill().getFgColor(), _colorMap);
}
public short getFillPattern() {
if (!pr.isSetTabColor()) {
return null;
}
- return new XSSFColor(pr.getTabColor(), getWorkbook().getStylesSource().getIndexedColors());
+ return XSSFColor.from(pr.getTabColor(), getWorkbook().getStylesSource().getIndexedColors());
}
/**
CTBorderPr borderPr = getBorder(side);
if(borderPr != null && borderPr.isSetColor()) {
- XSSFColor clr = new XSSFColor(borderPr.getColor(), _indexedColorMap);
+ XSSFColor clr = XSSFColor.from(borderPr.getColor(), _indexedColorMap);
if(_theme != null) {
_theme.inheritFromThemeAsRequired(clr);
}
if (ptrn == null) return null;
CTColor ctColor = ptrn.getBgColor();
- return ctColor == null ? null : new XSSFColor(ctColor, _indexedColorMap);
+ return XSSFColor.from(ctColor, _indexedColorMap);
}
/**
*/
public void setFillBackgroundColor(XSSFColor color) {
CTPatternFill ptrn = ensureCTPatternFill();
- ptrn.setBgColor(color.getCTColor());
+ if (color == null) {
+ ptrn.unsetBgColor();
+ } else {
+ ptrn.setBgColor(color.getCTColor());
+ }
}
/**
if (ptrn == null) return null;
CTColor ctColor = ptrn.getFgColor();
- return ctColor == null ? null : new XSSFColor(ctColor, _indexedColorMap);
+ return XSSFColor.from(ctColor, _indexedColorMap);
}
/**
*/
public void setFillForegroundColor(XSSFColor color) {
CTPatternFill ptrn = ensureCTPatternFill();
- ptrn.setFgColor(color.getCTColor());
+ if (color == null) {
+ ptrn.unsetFgColor();
+ } else {
+ ptrn.setFgColor(color.getCTColor());
+ }
}
/**
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFCell cell = workbook.createSheet().createRow(0).createCell(0);
- XSSFColor color = new XSSFColor(java.awt.Color.RED);
+ XSSFColor color = new XSSFColor(java.awt.Color.RED, workbook.getStylesSource().getIndexedColors());
XSSFCellStyle style = workbook.createCellStyle();
style.setFillForegroundColor(color);
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
XSSFWorkbook nwb = XSSFTestDataSamples.writeOutAndReadBack(workbook);
workbook.close();
XSSFCell ncell = nwb.getSheetAt(0).getRow(0).getCell(0);
- XSSFColor ncolor = new XSSFColor(java.awt.Color.RED);
+ XSSFColor ncolor = new XSSFColor(java.awt.Color.RED, workbook.getStylesSource().getIndexedColors());
// Now the cell is all black
XSSFColor nactual = ncell.getCellStyle().getFillBackgroundColorColor();
//setting XSSFColor
num = stylesTable.getBorders().size();
- clr = new XSSFColor(java.awt.Color.CYAN);
+ clr = new XSSFColor(java.awt.Color.CYAN, stylesTable.getIndexedColors());
cellStyle.setBottomBorderColor(clr);
assertEquals(clr.getCTColor().toString(), cellStyle.getBottomBorderXSSFColor().getCTColor().toString());
byte[] rgb = cellStyle.getBottomBorderXSSFColor().getRGB();
//setting XSSFColor
num = stylesTable.getBorders().size();
- clr = new XSSFColor(java.awt.Color.CYAN);
+ clr = new XSSFColor(java.awt.Color.CYAN, stylesTable.getIndexedColors());
cellStyle.setTopBorderColor(clr);
assertEquals(clr.getCTColor().toString(), cellStyle.getTopBorderXSSFColor().getCTColor().toString());
byte[] rgb = cellStyle.getTopBorderXSSFColor().getRGB();
//setting XSSFColor
num = stylesTable.getBorders().size();
- clr = new XSSFColor(java.awt.Color.CYAN);
+ clr = new XSSFColor(java.awt.Color.CYAN, stylesTable.getIndexedColors());
cellStyle.setLeftBorderColor(clr);
assertEquals(clr.getCTColor().toString(), cellStyle.getLeftBorderXSSFColor().getCTColor().toString());
byte[] rgb = cellStyle.getLeftBorderXSSFColor().getRGB();
//setting XSSFColor
num = stylesTable.getBorders().size();
- clr = new XSSFColor(java.awt.Color.CYAN);
+ clr = new XSSFColor(java.awt.Color.CYAN, stylesTable.getIndexedColors());
cellStyle.setRightBorderColor(clr);
assertEquals(clr.getCTColor().toString(), cellStyle.getRightBorderXSSFColor().getCTColor().toString());
byte[] rgb = cellStyle.getRightBorderXSSFColor().getRGB();
//setting XSSFColor
num = stylesTable.getFills().size();
- clr = new XSSFColor(java.awt.Color.CYAN);
+ clr = new XSSFColor(java.awt.Color.CYAN, stylesTable.getIndexedColors());
cellStyle.setFillBackgroundColor(clr);
assertEquals(clr.getCTColor().toString(), cellStyle.getFillBackgroundXSSFColor().getCTColor().toString());
byte[] rgb = cellStyle.getFillBackgroundXSSFColor().getRGB();
@Test
public void testFontFormattingColor() {
- Workbook wb = XSSFITestDataProvider.instance.createWorkbook();
+ XSSFWorkbook wb = XSSFITestDataProvider.instance.createWorkbook();
final Sheet sheet = wb.createSheet();
final SheetConditionalFormatting formatting = sheet.getSheetConditionalFormatting();
assertEquals(-1, fontFmt.getFontColorIndex());
//fontFmt.setFontColorIndex((short)11);
- final ExtendedColor extendedColor = new XSSFColor(PEAK_ORANGE);
+ final ExtendedColor extendedColor = new XSSFColor(PEAK_ORANGE, wb.getStylesSource().getIndexedColors());
fontFmt.setFontColor(extendedColor);
PatternFormatting patternFmt = formattingRule.createPatternFormatting();
XSSFRichTextString rt = new XSSFRichTextString("Test String");
XSSFFont font = wb.createFont();
- font.setColor(new XSSFColor(new Color(0, 128, 128)));
+ font.setColor(new XSSFColor(new Color(0, 128, 128), wb.getStylesSource().getIndexedColors()));
font.setItalic(true);
font.setBold(true);
font.setUnderline(FontUnderline.SINGLE);
XSSFRichTextString rt = new XSSFRichTextString("Test String");
XSSFFont font = wb.createFont();
- font.setColor(new XSSFColor(new Color(0, 128, 128)));
+ font.setColor(new XSSFColor(new Color(0, 128, 128), wb.getStylesSource().getIndexedColors()));
font.setFontName("Arial");
rt.applyFont(font);
XSSFRichTextString rt = new XSSFRichTextString("Test String");
XSSFFont font = wb.createFont();
- font.setColor(new XSSFColor(new Color(0, 255, 255)));
+ font.setColor(new XSSFColor(new Color(0, 255, 255), wb.getStylesSource().getIndexedColors()));
font.setFontName("Arial");
rt.applyFont(font);
XSSFRichTextString rt = new XSSFRichTextString("Test Rich Text String");
XSSFFont font = wb1.createFont();
- font.setColor(new XSSFColor(new Color(0, 255, 255)));
+ font.setColor(new XSSFColor(new Color(0, 255, 255), wb1.getStylesSource().getIndexedColors()));
font.setFontName("Arial");
rt.applyFont(font);
XSSFFont midfont = wb1.createFont();
- midfont.setColor(new XSSFColor(new Color(0, 255, 0)));
+ midfont.setColor(new XSSFColor(new Color(0, 255, 0), wb1.getStylesSource().getIndexedColors()));
rt.applyFont(5, 14, midfont); // set the text "Rich Text" to be green and the default font
XSSFTextParagraph para = shape.addNewTextParagraph(rt);
byte[] bytes = Integer.toHexString(0xF1F1F1).getBytes(LocaleUtil.CHARSET_1252);
color.setRgb(bytes);
- XSSFColor newColor=new XSSFColor(color, null);
+ XSSFColor newColor=XSSFColor.from(color, null);
xssfFont.setColor(newColor);
assertEquals(ctFont.getColorArray(0).getRgb()[2],newColor.getRGB()[2]);
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCalcPr;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCols;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTComments;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTIgnoredError;
assertEquals(expected, wb.getSheet("indexedRed").getTabColor());
// test regular-colored (non-indexed, ARGB) sheet
- expected = new XSSFColor();
+ expected = XSSFColor.from(CTColor.Factory.newInstance(), wb.getStylesSource().getIndexedColors());
expected.setARGBHex("FF7F2700");
assertEquals(expected, wb.getSheet("customOrange").getTabColor());
}
XSSFFont font = wb.createFont();
Color color = new Color(0, 255, 255);
- font.setColor(new XSSFColor(color));
+ font.setColor(new XSSFColor(color, wb.getStylesSource().getIndexedColors()));
font.setFontName("Arial");
rt.applyFont(font);
XSSFFont font = wb.createFont();
Color color = new Color(0, 255, 255);
- font.setColor(new XSSFColor(color));
+ font.setColor(new XSSFColor(color, wb.getStylesSource().getIndexedColors()));
font.setFontName("Arial");
rt.applyFont(font);
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import java.io.IOException;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.usermodel.XSSFCell;
+import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.Test;
assertEquals(rgbWithTint[2],-80);
wb.close();
}
+
+ @Test
+ public void testFillWithoutColors() {
+ XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("FillWithoutColor.xlsx");
+ XSSFCell cellWithFill = wb.getSheetAt(0).getRow(5).getCell(1);
+ XSSFCellStyle style = cellWithFill.getCellStyle();
+ assertNotNull(style);
+ assertNull("had an empty background color", style.getFillBackgroundColorColor());
+ assertNull("had an empty background color", style.getFillBackgroundXSSFColor());
+ }
}