Apache POI如何使用条件格式更改数据格式

我是Apache POI的用户,我制作了excel文件(.xlsx),我需要在单元格上使用条件格式。 我的问题是这样的:我有一个公式,如果这个公式返回一个介于0和1之间的值,我想用一位小数显示结果,而我想用任何小数来显示结果。 有可能使用条件格式? 如果是的话,我该怎么做呢?

Cell new_cell = row.createCell(index_column_found); XSSFCellStyle cs = wBook.createCellStyle(); XSSFDataFormat df = wBook.createDataFormat(); cs.setDataFormat(df.getFormat(cell_custom_format)); new_cell.setCellStyle(cs); 

这个工作与POI 3.12很好

以下是将满足您的要求的代码:

 FileOutputStream out = new FileOutputStream("dateFormat.xls"); HSSFWorkbook hssfworkbook = new HSSFWorkbook(); HSSFSheet sheet = hssfworkbook.createSheet("new sheet"); HSSFCellStyle cs = hssfworkbook.createCellStyle(); HSSFDataFormat df = hssfworkbook.createDataFormat(); cs.setDataFormat(df.getFormat("#,##0.0")); for(int i=0 ;i <100 ; i++ ) { double value = new Random(i).nextGaussian(); HSSFRow row = sheet.createRow((short) i); HSSFCell cell = row.createCell((short) 0); cell.setCellValue(value); if(value>=0 && value<=1) cell.setCellStyle(cs); } hssfworkbook.write(out); out.close(); 

使用DataFormatter格式化您的单元格值。

检查示例: http : //www.roseindia.net/java/poi/setdataformat.shtml

API链接: http : //poi.apache.org/apidocs/org/apache/poi/ss/usermodel/DataFormatter.html

这可能会帮助你。

  style.setDataFormat(HSSFDataFormat.getBuiltinFormat("@")); 

通过使用这种数据格式,我们可以将string赋值给单元格。