[英]How to set font color rgb in excel via apache poi
我想在我的項目中設置字體顏色,但我不能用 RGB 代碼來做。 我現在正在使用此代碼,但我需要使用 RGB 代碼。
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("Sheet");
CreationHelper helper3 = wb.getCreationHelper();
Font font = wb.createFont();
font.setColor(IndexedColors.BLUE.getIndex());
如何使用 RGB 代碼設置字體顏色? 我看了一些問題,但沒有成功。
使用XSSF
可以使用XSSFColor
設置字體顏色。 並且XSSFColor
可以從自定義RGB
值創建。
但是當您使用HSSF
時,這是不可能的。 在HSSF
colors 中總是需要調色板 colors。 因此,如果需要自定義顏色,則需要覆蓋其他HSSFPalette
colors 之一。
適用於XSSF
和HSSF
的完整示例。 對於HSSF
,它用RGB
222、111、222 覆蓋HSSFColor.HSSFColorPredefined.LIME
。
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;
public class CreateExcelFontCustomColor {
public static void main(String[] args) throws Exception {
byte[] rgb = new byte[]{(byte)222, (byte)111, (byte)222};
Workbook workbook = new HSSFWorkbook(); String filePath = "./Excel.xls";
//Workbook workbook = new XSSFWorkbook(); String filePath = "./Excel.xlsx";
Font font = workbook.createFont();
if (font instanceof XSSFFont) {
XSSFFont xssfFont = (XSSFFont)font;
xssfFont.setColor(new XSSFColor(rgb, null));
} else if (font instanceof HSSFFont) {
font.setColor(HSSFColor.HSSFColorPredefined.LIME.getIndex());
HSSFWorkbook hssfworkbook = (HSSFWorkbook)workbook;
HSSFPalette palette = hssfworkbook.getCustomPalette();
palette.setColorAtIndex(HSSFColor.HSSFColorPredefined.LIME.getIndex(), rgb[0], rgb[1], rgb[2]);
}
font.setFontHeightInPoints((short)30);
font.setBold(true);
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setFont(font);
Sheet sheet = workbook.createSheet();
Cell cell = sheet.createRow(0).createCell(0);
cell.setCellStyle(cellStyle);
cell.setCellValue("test");
FileOutputStream out = new FileOutputStream(filePath);
workbook.write(out);
out.close();
workbook.close();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.