乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>poi读取Excel</em>时,如果单元格设置的是数字格式,如何解决...

<em>poi读取Excel</em>时,如果单元格设置的是数字格式,如何解决...

作者:乔山办公网日期:

返回目录: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好了。

这是正常的。

  1. 通过POI取出的数值默认都是double,即使excel单元格中存的是1,取出来的值也是1.0,这就造成了一些问题,

  2. 如果数据库字段是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;  

}  

       这么处理后,单元格中的小数没有变化,如果是整数,也会取到整数。

相关阅读

  • Java poi读取doc文档出错

  • 乔山办公网excel表格制作
  • 思路很简单:1、在程序里取得公式 2、在公式执行之前校验格式,把多余的都好去掉(简单的replace)3、然后再进行计算The supplied data appears to be a raw XML file. Formats such as Office 2003 XML are
  • 用java的<em>poi</em>类读取一个<em>excel</em>

  • 乔山办公网excel表格制作
  • 这是正常的。通过POI取出的数值默认百都是度double,即使excel单元格中存的是1,取出来的值也是1.0,这就造成了知一些问题,如果数据库字段是int,那么就会wrongdatatype,所以需要对数值
关键词不能为空
极力推荐

聚合标签

ppt怎么做_excel表格制作_office365_word文档_365办公网