Recuerda que en la informática cualquier problema casi siempere suele tener diversas soluciones, pero nosotros aquí te enseñamos lo más óptimo y mejor.
Solución:
Entonces, después de buscar un poco en la web y leer los documentos, obtuve una pista de que SXSSF es en realidad un contenedor alrededor de XSSF, así que encasillé el CellStyle devuelto por el libro de trabajo de SXSSF a XSSF y pude usar XSSFColor directamente para generar colores.
SXSSFWorkbook workbook = new SXSSFWorkbook(50);
Sheet sheet = workbook.createSheet("Image Data");
....
Cell cell = row.createCell(j);
cell.setCellValue(j);
XSSFCellStyle cs1 = (XSSFCellStyle) workbook.createCellStyle();
cs1.setFillForegroundColor(new XSSFColor(new java.awt.Color(red,green,blue)));
cs1.setFillPattern(CellStyle.SOLID_FOREGROUND);
cell.setCellStyle(cs1);
Para evitar la necesidad de encasillar los cellStyles, cree primero un XSSFWorkbook con cellStyles (XSSFCellStyle) aplicando los colores personalizados y luego envuélvalo con un constructor SXSSFWorkbook como el siguiente ejemplo:
/**
* Sample based on POI Spreadsheet How-To.
*
* @see SXSSFWorkbook
*/
public static void main(String[] args) throws Throwable
XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
XSSFColor colorGrey = new XSSFColor(new Color(210, 210, 210));
XSSFCellStyle cellStyleGrey = xssfWorkbook.createCellStyle();
cellStyleGrey.setFillPattern(CellStyle.SOLID_FOREGROUND);
cellStyleGrey.setFillForegroundColor(colorGrey);
// keep 100 rows in memory, exceeding rows will be flushed to disk
SXSSFWorkbook sxssfWorkbook = new SXSSFWorkbook(xssfWorkbook, 100);
Sheet sheet = sxssfWorkbook.createSheet();
for (int rownum = 0; rownum < 1000; rownum++)
Row row = sheet.createRow(rownum);
for (int cellnum = 0; cellnum < 10; cellnum++)
Cell cell = row.createCell(cellnum);
String address = new CellReference(cell).formatAsString();
cell.setCellValue(address);
// for even rows apply the grey cellStyle
if (rownum % 2 == 0)
cell.setCellStyle(cellStyleGrey);
// Omitted asserts block from original sample...
FileOutputStream out = new FileOutputStream("/temp/sxssf.xlsx");
sxssfWorkbook.write(out);
out.close();
// dispose of temporary files backing this workbook on disk
sxssfWorkbook.dispose();
Calificaciones y reseñas
Si conservas algún cuestión o forma de ascender nuestro crónica te recordamos dejar un exégesis y con gusto lo leeremos.