Я хочу извлечь конкретный столбец из существующего Excel, который имеет значение точности с плавающей запятой (3.55,3.98). Пожалуйста, помогите мне сделать так, чтобы оно имело 1 значение точности (3,5,3,9).
try {
InputStream myxls = new FileInputStream("D:\\Amrutha\\SIMPL\\DashBoardReport20110228.xls");
HSSFWorkbook wb = new HSSFWorkbook(myxls);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet,wb);
CellReference cellReferenceSource = new CellReference("AA17");
HSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
for(Iterator rowIter = sheet.rowIterator(); rowIter.hasNext(); ) {
HSSFRow row = (HSSFRow) rowIter.next();
HSSFCell cellSource = row.getCell(cellReferenceSource.getCol());
evaluator.setCurrentRow(row);
if (cellSource != null) {
//HSSFFormulaEvaluator.CellValue cellValue = evaluator.evaluate(cell);
CellValue cellValue= evaluator.evaluate(cellSource);
//CellValue cellValueTarget= evaluator.evaluate(cellTarget);
FileOutputStream fout = new FileOutputStream("D:\\Amrutha\\SIMPL\\DashBoardReport20110228.xls");
if(cellValue != null) {
switch (cellValue.getCellType()) {
case HSSFCell.CELL_TYPE_BOOLEAN:
System.out.println(cellValue.getBooleanValue());
break;
case HSSFCell.CELL_TYPE_NUMERIC:
// HSSFCellStyle style = wb.createCellStyle();
HSSFDataFormat format = wb.createDataFormat();
HSSFCellStyle style = wb.createCellStyle();
style.setDataFormat(format.getFormat("0.0"));
// cellSource.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cellSource.setCellStyle(style);
System.out.println( cellSource.getCellStyle());
// style.setDataFormat(format.getFormat(".0"));
System.out.println(cellValue.getNumberValue());
cellSource.setCellValue(cellValue.getNumberValue());
// cellSource.setCellStyle(style);
// cellSource.setCellValue(cellValue.getNumberValue());
// System.out.println(cellValue.getNumberValue());
wb.write(fout);
fout.close();
break;
case HSSFCell.CELL_TYPE_STRING:
System.out.println(cellValue.getStringValue());
break;
case HSSFCell.CELL_TYPE_ERROR:
System.out.println(cellValue.getErrorValue());
break;
case HSSFCell.CELL_TYPE_BLANK:
System.out.println("");
break;
// CELL_TYPE_FORMULA will never happen
case HSSFCell.CELL_TYPE_FORMULA:
System.out.println("CELL_TYPE_FORMULA");
break;
default:
System.out.println("null");
break;
}
}
}
else {
System.out.println("null");
}
}
}
catch(Exception e) {
System.out.print("Exception in main "+e);
}
}