我正在尝试将一个Excel文件的单元格值复制到另一个Excel文件中。 但是,源文件包含公式,当我获取单元格时,我正在获取公式,而在最终文件中,我获得了公式而不是值。
for (int j = 0; j < cellSource[0].length; j++)
{ //For each columns of source
for (int i = 0; i < cellFinal[0].length ; i++)
{ //For each columns of final
if (cellSource[0][j].toString().equals(cellFinal[0][i].toString()))
{ //Checking is Equals
for (int p = 0; p < cell.length; p++)
{ //If their are equals, replace the data
cellFinal[p][i].setCellValue(cellSource[p][j].toString());
//Replace the value with the Formula of the main
}
}
}
}
我尝试过一些getCachedFormulaResultType()
的操作,但是它不起作用。
Cell cell = rowFileDa.getCell();
switch (cell .getCellType()) {
case FORMULA:
fileDa[i][j] = cell.getCachedFormulaResultType().toString();
break;
//Return NUMERIC
}
谢谢!
解决了:
cellValue = evaluator.evaluate(cellSource[p][j]);
String tmp = cellValue.formatAsString();
tmp = tmp.replace("\"", "");
if (isNumeric(tmp) == false) {
cell[p][i].setCellValue(tmp);
} else {
double tmpBis = Double.valueOf(tmp);
cell[p][i].setCellValue(tmpBis);
}
感谢您的帮助!
答案 0 :(得分:0)
不要使用cell.toString()
,请使用单元格值。
根据Cell API:Apache POI Javadoc
选项为getBooleanCellValue(), getDateCellValue(), getErrorCellValue(), getNumericCellValue(), getRichStringCellValue(), getStringCellValue()
。