Open liuminminmin opened 3 days ago
xls格式使用的字体样式类为org.apache.poi.ss.usermodel.Font
,xlsx格式使用的字体样式类为org.apache.poi.xssf.usermodel.XSSFFont
,参考如下:
if (isHead) {
Sheet sheet = writeSheetHolder.getSheet();
Workbook workbook = sheet.getWorkbook();
XSSFCellStyle cellStyle = (XSSFCellStyle) workbook.createCellStyle();
// 复制已存在的样式
cellStyle.cloneStyleFrom(cell.getCellStyle());
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// RGB颜色值
//IndexedColorMap colorMap = ((XSSFWorkbook) workbook).getStylesSource().getIndexedColors();
int red = 0, green = 0, blue = 0;
XSSFColor color = new XSSFColor(new Color(red, green, blue), new DefaultIndexedColorMap());
// 设置RGB背景颜色
cellStyle.setFillForegroundColor(color);
// 设置RGB字体颜色
XSSFFont font = cellStyle.getFont();
font.setColor(color);
cellStyle.setFont(font);
cellStyle.setDataFormat(49);
cell.setCellStyle(cellStyle);
}
xls格式使用的字体样式类为
org.apache.poi.ss.usermodel.Font
,xlsx格式使用的字体样式类为org.apache.poi.xssf.usermodel.XSSFFont
,参考如下:if (isHead) { Sheet sheet = writeSheetHolder.getSheet(); Workbook workbook = sheet.getWorkbook(); XSSFCellStyle cellStyle = (XSSFCellStyle) workbook.createCellStyle(); // 复制已存在的样式 cellStyle.cloneStyleFrom(cell.getCellStyle()); cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); // RGB颜色值 //IndexedColorMap colorMap = ((XSSFWorkbook) workbook).getStylesSource().getIndexedColors(); int red = 0, green = 0, blue = 0; XSSFColor color = new XSSFColor(new Color(red, green, blue), new DefaultIndexedColorMap()); // 设置RGB背景颜色 cellStyle.setFillForegroundColor(color); // 设置RGB字体颜色 XSSFFont font = cellStyle.getFont(); font.setColor(color); cellStyle.setFont(font); cellStyle.setDataFormat(49); cell.setCellStyle(cellStyle); }
还是没生效呀,我要实现的是把excel的表头的第一个字符变成红色
建议先去看文档
快速开始 、常见问题
触发场景描述
触发Bug的代码