作者:乔山办公网日期:
返回目录:excel表格制作
Excel里面有些表格是公式(fromula),你不能直接用getNumericCellValue()读取值
你要用copy读取公式的方法取值,取值之前判断一下单元格zd的类型,代码如下:
if(number_Cell.getCellType() == XSSFCell.CELL_TYPE_FORMULA)
{
XSSFFormulaEvaluator formulaEvaluator = new XSSFFormulaEvaluator((XSSFWorkbook) workBook);
Double data=formulaEvaluator.evaluate(number_Cell).getNumberValue();
}
1、实现日期格式的方法zd代码。
2、实现保留三位小数格式的方法代码。
3、实现货币格式的方法代码。
4、实现百分比格式的方法代码。
4、实现中文大写格式的方法代码。
注意事项:专
Excel虽然提供了大量的用户界面特性,但它仍然保留了第一款电子制表软件VisiCalc的特性:行、列组成单元格,数据属、与数据相关的公式或者对其他单元格的绝对引用保存在单元格中。
不明白你的意思,你所说的大写是中文汉字? 直接getStringValue不行? 如果是数字就getDoubleValue好了。
这是正常的。
通过POI取出的数值默认都是double,即百使excel单元格中存的是1,取出来的度值也是1.0,这就造成了一些问题,
如果数据库问字段是int,那么就会wrong data type,所以需要对数值类型答处理。
代码如下:
Cell cell = null;// 单元格专
Object inputValue = null;// 单元格值
if(!isEmpty(cell) && cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
long longVal = Math.round(cell.getNumericCellValue());
if(Double.parseDouble(longVal + ".0") == doubleVal)
inputValue = longVal;
else
inputValue = doubleVal;
}
这么处理后,单元格中的小数没属有变化,如果是整数,也会取到整数。