我尝试使用白色字体但是它们总是显示为黑色,这是我的代码:
HSSFCellStyle estiloCabecera = wb.createCellStyle();
estiloCabecera.setFillBackgroundColor(IndexedColors.BLACK.getIndex());
estiloCabecera.setFillPattern(CellStyle.SOLID_FOREGROUND);
HSSFFont fuenteCabecera = wb.createFont();
fuenteCabecera.setFontHeightInPoints((short)12);
fuenteCabecera.setFontName("Arial");
fuenteCabecera.setColor((short)HSSFColor.WHITE.index);
//fuenteCabecera.setColor(HSSFFont.COLOR_RED);
estiloCabecera.setFont(fuenteCabecera);
Row rowCabeceraTabla = sheet.createRow((short)3);
Cell celda = rowCabeceraTabla.createCell(0);
celda.setCellValue(new HSSFRichTextString("Id pregunta"));
celda.setCellStyle(estiloCabecera);
我不明白为什么,我已经尝试了我能想到的一切。有人可以帮忙吗?
答案 0 :(得分:1)
正如我的评论中所述,您的示例适用于我,即我得到一个带有白色文本的黑色单元格。
矩形代替文本通常指出,你有编码问题或字体不支持字符。您可以尝试使用“Arial Unicode MS”而不是“Arial”吗?
我发布我的代码作为答案仅供进一步参考...如果我们发现了可以解决您问题的新细节,我会更新它...
import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*;
public class ForegroundColor {
public static void main(String[] args) throws Exception {
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet();
CellStyle estiloCabecera = wb.createCellStyle();
estiloCabecera.setFillBackgroundColor(IndexedColors.BLACK.getIndex());
estiloCabecera.setFillPattern(CellStyle.SOLID_FOREGROUND);
Font fuenteCabecera = wb.createFont();
fuenteCabecera.setFontHeightInPoints((short)12);
fuenteCabecera.setFontName("Arial");
fuenteCabecera.setColor((short)HSSFColor.WHITE.index);
//fuenteCabecera.setColor(HSSFFont.COLOR_RED);
estiloCabecera.setFont(fuenteCabecera);
Row rowCabeceraTabla = sheet.createRow((short)3);
Cell celda = rowCabeceraTabla.createCell(0);
celda.setCellValue(new HSSFRichTextString("Id pregunta"));
celda.setCellStyle(estiloCabecera);
FileOutputStream fos = new FileOutputStream("color.xls");
wb.write(fos);
fos.close();
}
}