作者:乔山办公网日期:
返回目录:excel表格制作
public static String getStringCellValue(Cell cell) {
if(cell==null){
return null;
}
String value = "";
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
value = cell.getStringCellValue();
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
if (date != null) {
value = new SimpleDateFormat("yyyy-MM-dd").format(date);
} else {
value = "";
}
} else {
value =
new DecimalFormat("0").format(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_FORMULA: //导入时如果7a64e59b9ee7ad94336为公式生成的数据则无值
// System.out.println("Formula:" + cell.getStringCellValue());
if (!cell.getStringCellValue().equals("")) {
value = cell.getStringCellValue();
} else {
value = cell.getNumericCellValue() + "";
}
break;
case Cell.CELL_TYPE_BLANK:
break;
case Cell.CELL_TYPE_ERROR:
value = "";
break;
case Cell.CELL_TYPE_BOOLEAN:
value = (cell.getBooleanCellValue() == true ? "Y" : "N");
break;
default:
value = "";
}
return value;
}
Excel里面有百些表格是公式(fromula),你不能直接用getNumericCellValue()读取值
你要用读度取公式的方法取值,取值之前判断一回下单元格答的类型,代码如下:
if(number_Cell.getCellType() == XSSFCell.CELL_TYPE_FORMULA)
{
XSSFFormulaEvaluator formulaEvaluator = new XSSFFormulaEvaluator((XSSFWorkbook) workBook);
Double data=formulaEvaluator.evaluate(number_Cell).getNumberValue();
}
Word版本问题,Word分为2003和2007,需要分别做兼容处理
找不到该类,导入的jar包有缺失,直接找下这个类需要引入的包,import一下就好了