2013-07-15 4 views
11

Comment modifier la couleur de la police d'en-tête en blanc et le vert de remplissage? Ce sont les classes que j'utilise:Comment modifier la couleur du texte et la couleur de remplissage

import static org.apache.poi.ss.usermodel.CellStyle.* 
import static org.apache.poi.ss.usermodel.IndexedColors.* 
import org.apache.poi.hssf.usermodel.* 
import org.apache.poi.hssf.usermodel.HSSFWorkbook 
import org.apache.poi.ss.usermodel.Cell 
import org.apache.poi.ss.usermodel.CellStyle 
import org.apache.poi.ss.usermodel.Row 
import org.apache.poi.ss.usermodel.Sheet 
import org.apache.poi.ss.usermodel.Workbook 
import org.apache.poi.ss.usermodel.Font 

Et ceci est le code où, je crois, il devra être inséré dans.

Font headerFont = wb.createFont(); 
headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD) 
CellStyle headerStyle = wb.createCellStyle() 
headerStyle.setFont(headerFont) 

cellMOPID.setCellStyle(headerStyle) 
cellType.setCellStyle(headerStyle) 
cellStatus.setCellStyle(headerStyle) 
cellState.setCellStyle(headerStyle) 
cellStartDate.setCellStyle(headerStyle) 
cellEndDate.setCellStyle(headerStyle) 
cellDesc.setCellStyle(headerStyle) 

Répondre

9

Si vous voulez définir la couleur comme simple style de cellule ... vous pouvez écrire du code comme.

cell.setCellValue("Header Text"); 
XSSFCellStyle headerStyle = wb.createCellStyle(); 
Font headerFont = wb.createFont(); 
headerStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex()); 
headerFont.setColor(IndexedColors.WHITE.getIndex()); 
headerStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); 
headerStyle.setFont(headerFont); 
cell.setCellStyle(headerStyle); 

Cela remplira la cellule de couleur verte et la police sera de couleur gras BLANC

+0

Dans quel fichier JAR se trouve le XSSFCellStyle? Cela ressemble à ce dont j'ai besoin! –

+0

J'utilise Apache poi 3.9. XSSFCellStyle se trouve dans org.apache.poi.xssf.usermodel.XSSFCellStyle – Sankumarsingh

+0

Je liste import org.apache.poi.xssf.usermodel.XSSFCellStyle en haut de mon document mais je reçois un "impossible de résoudre la classe org.apache.poi .xssf.usermodel.XSSFCellStyle "message. Est-ce que cela signifie que je ne l'ai pas? –

11
 HSSFCellStyle cellStyle = workBook.createCellStyle();   
    HSSFFont font = wb.createFont(); 
    font.setFontName(XSSFFont.DEFAULT_FONT_NAME); 
    font.setFontHeightInPoints((short)10); 
    font.setColor(IndexedColors.BLUE.getIndex()); 
    cellStyle.setFont(font); 
    //the version i am using is poi-3.8 
8

Pour fichier xls J'ai vérifié ce qui suit et fonctionne très bien sur ma fin.

Je veux importer les éléments suivants:

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import org.apache.poi.hssf.usermodel.HSSFCell; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.ss.usermodel.CellStyle; 
import org.apache.poi.ss.usermodel.Font; 
import org.apache.poi.ss.usermodel.IndexedColors; 

et le morceau de code est le suivant:

FileInputStream fin = new FileInputStream (XLSFileAddress); 
    HSSFWorkbook wb = new HSSFWorkbook(fin); 
    HSSFCell cell=wb.getSheetAt(2).getRow(0).getCell(0); 
    cell.setCellValue("Header Text"); 
    Font headerFont = wb.createFont(); 
    headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD); 
    CellStyle headerStyle = wb.createCellStyle(); 
    headerStyle.setFont(headerFont); 
    headerStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex()); 
    headerFont.setColor(IndexedColors.WHITE.getIndex()); 
    headerStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); 
    cell.setCellStyle(headerStyle); 
    FileOutputStream fileOut = new FileOutputStream(XLSFileAddress); 
    wb.write(fileOut); 
    fileOut.close(); 

La sortie de ce code est la première cellule de la première rangée de la feuille à l'index deux, affichera le texte "Texte d'en-tête" avec la couleur des cellules est verte et la couleur du texte est blanche avec les caractères gras. J'utilise apache POI 3.9.

Questions connexes