2016-08-26 4 views
1

POIを使用してExcelシートの特定の行を強調表示していますが、これは機能していないようです。スタイルがPOIでExcelに適用されない

私はたくさんのGoogle検索を行ったが、問題はまだそこにあるようだ。

以下は、確認した方法の一部ですが、動作しませんでした。

HSSFFont font = (HSSFFont) sheet.getWorkbook().createFont(); 
font.setBold(true); 
style.setFont(font); 
style.setFillPattern(CellStyle.SOLID_FOREGROUND); 
style.setFillForegroundColor(new HSSFColor.BLUE().getIndex()); 
cell.setCellStyle(style); 
//nextRow.setRowStyle(style); 

または

HSSFCellStyle curStyle = (HSSFCellStyle) cell.getCellStyle(); 
curStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); 
curStyle.setFillForegroundColor(HSSFColor.BLUE.index); 
cell.setCellStyle(curStyle); 

または

HSSFPalette palette = ((HSSFWorkbook) sheet.getWorkbook()).getCustomPalette(); 
HSSFCellStyle style= (HSSFCellStyle) cell.getCellStyle(); 
HSSFColor myColor = palette.findSimilarColor(255, 0, 0); 
short palIndex = myColor.getIndex(); 
style.setFillForegroundColor(palIndex); 
cell.setCellStyle(style); 
+1

ファイルを配線していますか?例外なく? –

+0

スタイルオブジェクトは1つだけ使用しますか?それともあなたにはたくさんの人がいますか? style1、style2、... – DamienB

+0

ありがとうございました。確かに私は優れたものに書き返していませんでした。 – LookingForSolution

答えて

0

最初のソリューションは完璧に動作します。

InputStream inp; 
HSSFWorkbook wb = null; 
HSSFSheet sheet = null; 
HSSFRow hssf_DataRow; 
HSSFCell cell = null; 

inp = new FileInputStream(FileName); 
wb = new HSSFWorkbook(inp); 
sheet = wb.getSheetAt(1); 

hssf_DataRow = sheet.createRow((short) 1); 

cell = hssf_DataRow.createCell(1); 

HSSFFont font = (HSSFFont) sheet.getWorkbook().createFont(); 
HSSFCellStyle style = (HSSFCellStyle) cell.getCellStyle(); 

font.setBold(true); 
style.setFont(font); 
style.setFillPattern(CellStyle.SOLID_FOREGROUND); 
style.setFillForegroundColor(new HSSFColor.BLUE().getIndex()); 
cell.setCellStyle(style); 
関連する問題