2012-08-14 52 views
2

在Apache POI中,我为某些单元格应用了一些样式并合并了这些单元格。当我在2010年或2007年开放时,它的作品很好,但在2003年,格式化风格已经消失。它在每次保存2003 excel文件之前先推出兼容性检查对话框。合并和颜色样式不适用于Apache POI excel 2003格式

请参阅截图。

enter image description here

下面是示例代码:

......... 
style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); 
style.setFillPattern(CellStyle.SOLID_FOREGROUND); 
......... 
cell.setCellStyle(style); 

合并单元格

CellRangeAddress cr = new CellRangeAddress(10, 10, 18,23); 
sheet.addMergedRegion(cr); 

我删除合并代码,我得到的颜色在2003年的风格得到应用。但是我希望将颜色和合并应用于2003版本的这些单元格中。

任何建议!

+2

这在Excel中是一样的。第一个单元格的单元格样式被设置为第二个单元格的默认样式。您可以先合并单元格,然后设置颜色样式? – 2012-08-14 12:47:36

+0

我换了合并和应用颜色代码,不工作。 – undisputed 2012-08-23 14:23:24

回答

1
int rownum = sheet.getLastRowNum()+1; 
sheet.addMergedRegion(new Region(10,10,18,23)); 
HSSFRow row=sheet.createRow(rownum); 
HSSFCell secCell=row.createCell(0); 


HSSFCellStyle cellStyle = workBook.createCellStyle(); 
style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); 
style.setFillPattern(CellStyle.SOLID_FOREGROUND); 
cell.setCellStyle(style); 

它可能对初学者有帮助。样式的创建不能在循环中完成。

+0

您尚未将任何内容分配给“单元格”。 如何添加样式到一个区域? – 2016-05-09 08:57:27