excel-POI获取Excel使用公式后的值

问题描述

POI获取Excel使用公式后的值
java使用POI生成Excel,单元格使用公式计算,使用cell.getNumericCellValue()获取值,得到的值一直为0.
因为我需要判断单元格的值为0设置不同的样式,可以使用以下方法:
FormulaEvaluator evaluator = c.getSheet().getWorkbook().getCreationHelper().createFormulaEvaluator();
evaluator.evaluateFormulaCell(c);
CellValue cellValue = evaluator.evaluate(c);
Double celldata = cellValue.getNumberValue();

这样就可以获取公式计算后的值

解决方案

FormulaEvaluator evaluator = c.getSheet().getWorkbook().getCreationHelper().createFormulaEvaluator();
evaluator.evaluateFormulaCell(c);
CellValue cellValue = evaluator.evaluate(c);
Double celldata = cellValue.getNumberValue();

时间: 2024-08-04 05:07:23

excel-POI获取Excel使用公式后的值的相关文章

excel动态获取列-在公式中使用INDIRECT函数

问题描述 在公式中使用INDIRECT函数 在公式中使用INDIRECT函数,取得制定单元格的值的代码 解决方案 =INDIRECT("B" & ROW()) + INDIRECT("C" & ROW()) 解决方案二: =INDIRECT("B" & ROW()) + INDIRECT("C" & ROW()) 解决方案三: excel 动态获取某列的和

JAVA使用POI获取Excel的列数与行数_java

前言 报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑.Java程序由于其跨平台特性,不能直接操纵Excel.因此,本文探讨一下POI视线Java程序进行Excel中列数和行数的读取. 方法如下 //获取指定行,索引从0开始 hssfRow=hssfSheet.getRow(1); //获取指定列,索引从0开始 hssfCell=hssfRow.getCell((short)6); //获取总行数 //int rowNum=hssfSheet.ge

jsp页面传值-怎么获取url中?后面的值

问题描述 怎么获取url中?后面的值 例如:我的a.jsp页面上:超链接地址里有个 href="b.jsp?userName="你好" 那我在b.jsp页面中怎么获取这个userName的值 解决方案 html的方式可以location.search可以获取到?以及以后的数据. java方式(因为jsp内部可以使用java代码): request.getParameter("userName"); 解决方案二: 获取url后面的文件名如何获取URL后面锚点

在EXCEL中获取列中不重复的值的个数

excel|重复 Public Sub distinctCount()'求Col列中StartRow到EndRow范围中不重复的个数'本例是计算标题为sheet1的Excel表中的A1:A240的不重复值的个数 '修改下面四行的结尾值 Dim sheetsCaption As String: sheetsCaption = "Sheet1" Dim Col As String: Col = "A" Dim StartRow As Integer: StartRow

java-使用POI处理Excel中公式不能自动计算出来的问题

问题描述 使用POI处理Excel中公式不能自动计算出来的问题 提供一个sheet页模板,让用户填写数据,然后上传到服务器,服务器将用户上传的数据,复制到服务器中的模板的相应Sheet页上,再通过excel的公式将计算结果(多行多列)反馈给上传用户,在POI的复制和计算过程中,因公式复杂,公式项多,sheet页多,在调用XSSFFormulaEvaluator.evaluate()方法时导致内存占用过大,GC频率过高,甚至OOM,有什么方法可以解决. 现将用户数据赋值到了服务器模板,在不通过XS

poi生成excel设置表格保护后,组合显示也被保护了,该怎么取消?

问题描述 poi生成excel设置表格保护后,组合显示也被保护了,该怎么取消? 今天小弟碰到一个问题,望懂的大神帮忙看看,感激不尽: 我用poi生成excel时先设置了一个表格保护(sheet.protectSheet("123")),然 后有在表中生成过组合(sheet.groupRow(i+4,h+2);)这样的话这个生成的组合就用不了了,该怎么给这个组合按钮取消保护呢? 解决方案 没人知道吗?自己顶下下下下下

java-【急,在线等】Java使用POI导出Excel,服务器部署后超过50行报错!

问题描述 [急,在线等]Java使用POI导出Excel,服务器部署后超过50行报错! Java使用POI导出Excel,服务器部署后超过50行报错,但本地调试无异常!具体错误信息如下: 10:13:44,761 ERROR org.apache.struts2.dispatcher.StreamResult StreamResultX : Can not find a java.io.InputStream with the name [excelStream] in the invocati

自己封装的poi操作Excel工具类

       在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类.        该工具类主要完成的功能是:读取Excel.汇总Excel的功能.在读取时,可以设定开始和结束读取的位置.设定是否读取多个sheet.设定读取那个或者那些sheet等.在汇总时,如设定是否覆盖目标文件.设定是否比较检查重复内容.设定检查重复的列索引等功能.具体来演示一下吧:        工具类源码: package com.tgb.

poi 解析excel问题

问题描述 以下是程序中的一段代码,正常的的excel2003或者2007文件都能解析,以及2007的文件另存在2003的文件之后也能够正常导入:问题:2003的文件另存为2007的文件之后,导入就出现异常了:publicWorkbook getWorkbook(File file,String fileName){ Workbook wb = null; InputStream input = null; if(file == null || fileName == null) { return