首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Apache POI :使用公式FormulaEvaluator读取单元格值时删除公式

Apache POI是一个用于操作Microsoft Office文档的Java库。它提供了一组API,可以读取、写入和修改Excel、Word和PowerPoint文档。

在Apache POI中,使用FormulaEvaluator可以计算Excel单元格中的公式,并读取其计算结果。当需要读取单元格值时,可以通过FormulaEvaluator的evaluate()方法来获取公式计算后的结果。

要删除公式并获取单元格的值,可以按照以下步骤进行操作:

  1. 创建一个Workbook对象,打开Excel文件:
代码语言:txt
复制
Workbook workbook = WorkbookFactory.create(new File("path/to/excel.xlsx"));
  1. 获取要操作的Sheet对象:
代码语言:txt
复制
Sheet sheet = workbook.getSheet("Sheet1");
  1. 获取要读取的单元格对象:
代码语言:txt
复制
Cell cell = sheet.getRow(rowNum).getCell(cellNum);
  1. 创建一个FormulaEvaluator对象,并将单元格对象传递给它:
代码语言:txt
复制
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
evaluator.evaluate(cell);
  1. 检查单元格类型,如果是公式类型,则获取公式计算后的值:
代码语言:txt
复制
if (cell.getCellType() == CellType.FORMULA) {
    cell.setCellType(CellType.NUMERIC); // 将单元格类型设置为数值类型
    double value = cell.getNumericCellValue(); // 获取公式计算后的数值
    // 进行后续操作,如输出、存储等
}

需要注意的是,使用FormulaEvaluator计算公式时,需要确保相关的依赖库已经添加到项目中。可以通过Maven或Gradle等构建工具来管理依赖。

推荐的腾讯云相关产品是腾讯云对象存储(COS),它提供了高可靠性、低成本的对象存储服务,适用于存储和管理各种类型的文件和数据。您可以将Excel文件上传到COS,并使用腾讯云的API或SDK进行读取和操作。

腾讯云对象存储(COS)产品介绍链接地址:https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

保姆级文件导入导出功能开发{POI || EasyExcel},还看不懂,你来咬我啊

文件的导入导出功能目前主要是两家独大,一个就是ApachePOI,另一家就是阿里的EasyExcel.这里两种技术我都会在下面的文章里面详细讲解. 2.POI: 2.1-POI介绍: POI的全称是:...POI之前,我们需要先了解一下Excel的版本更替,这样能够方便我们更好的了解POI使用....其实这三种概念的理念差不多,基本上主要都是用来处理如果出现缺失的单元格情况,可能会影响后续数据的读写操作。...并且他们的返回都是int类型的,所以这就行号解释了为什么能够直接调用这些变量了. 2.7-POI计算公式 这里我们在之前的test.xls文件里面为一个单元格增加了一个公式: ?...(); System.out.println(formula); //执行公式之后,单元格内的 CellValue

1.7K30

Java 基于Apache POI实现Excel读写操作

org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream...,请清理掉,从没填过,那么cell=null,合并的单元格被当做一个单元格 break; case NUMERIC: //数字...SXSSFWorkbook:POI3.8开始,新增此API,是 XSSFWorkbook API的兼容流式扩展,主要解决当使用 XSSFWorkbook 方式导出大数据量,内存溢出的问题,支持导出大量的数据..., // // 数字(整数、小数、日期) STRING(1), FORMULA(2), // 公式,即单元格内容通过公式计算出来 BLANK(3), // 为空//什么时候会存储空...,取决于所使用的表格软件 BOOLEAN(4), ERROR(5); 写入Excel import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook

43550

如何选择最适合您的Excel处理库?

POI(Poor Obfuscation Implementation)是Apache基金会的开源项目,提供了Java语言的Excel处理功能。...当遍历读取数据POI需要嵌套循环每个cell(单元格)。...GcExcel则提供了IRange接口,range(区域)指的是一个或者一片单元格,可以直接从range上使用getValue方法获取数据。...GcExcel支持 482个公式,同时也支持自定义公式,允许用户使用Java去扩展公式,或实现特定业务的公式。 性能对比 通过实际测试,我们发现GcExcel在处理大型Excel文件表现出色。...与POI相比,GcExcel在加载速度、内存占用和稳定性方面都具有明显优势。 经过尝试发现,在打开包含1000万个单元格的Excel文件,GcExcel需要6.2秒而POI却需要63秒。

16720

终于有一款组件可以全面超越Apache POI

Apache POI中,支持的公式数量很少(虽然Apache POI网站罗列了280多种可评估的公式,但在API中仅显示为157种)。...单元格中获取/设置 在对单个单元格执行获取/设置的情况下,GcExcel比Apache POI表现的更好。 13....、POI和Aspose.Cells的性能结果,如下所示: 设置:获取和保存100,000 * 30单元格的double / string / date,下图显示了double的结果。...设置:计算和保存20,000 * 30个单元格公式,结果如下: GcExcel 用时不超过1S ;Apache POI 则达到10S左右 ?...打开并保存一个20.5MB 的 Excel文件,其中包含了许多数据、公式单元格格式,结果如下: GcExcel 用时不超过4.9S ;Apache POI 则达到10S左右 GcExcel 内存消耗为

3.3K10

POI操作Excel入门案例(Spring boot)

一、简介 Apache POIApache软件基金会的免费开源的跨平台的 Java API,POI提供API给Java程序对Microsoft Office格式(Excel、WORD、PowerPoint...(String value):设置单元格 setCellType():设置单元格类型,如 字符串、数字、布尔等 setCellStyle():设置单元格样式 String getStringCellValue...():获取单元格中的字符串 setCellStyle(HSSFCellStyle style):设置单元格样式,例如字体、加粗、格式化 setCellFormula(String formula...):设置计算公式,计算的结果作为单元格,也提供了异常常用的函数,如求和"sum(A1,C1)"、日期函数、字符串相关函数、CountIf和SumIf函数、随机数函数等 5、HSSFCellStyle...// 5.5 获取第六列计算公式 HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(workbook);

41710

Apache POI使用详解

官方主页: http://poi.apache.org/index.html API文档: http://poi.apache.org/apidocs/index.html Java Excel...由于apache poi 在项目中用的比较多,本篇博客只讲解apache poi,不讲jxl 二:Apache POI常用的类 HSSF - 提供读写Microsoft Excel XLS格式档案的功能...(); 设置单元格类型,如 字符串、数字、布尔等 setCellStyle(); 设置单元格样式 String getStringCellValue(); 获取单元格中的字符串 setCellStyle...(HSSFCellStyle style); 设置单元格样式,例如字体、加粗、格式化 setCellFormula(String formula); 设置计算公式,计算的结果作为单元格,也提供了异常常用的函数...// 获取计算公式 HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(workbook); cell5 = e.evaluateInCell

3.6K10

报表技术

现在已经停止更新和 维护,所以本课程中只简单地演示一下jxl的代码,不会把它作为重点, 2.2.2 POI POIapache的项目,可对微软的Word,Excel,PPT进行操作,包括office2003...poi现在一直有更新。所以现在主流使用POI。...Apache POIApache软件基金会的开源项目,由Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java语言操作Microsoft Office的功能。...; 3、创建单元格 添加文本类单元格 Label labelC = new Label(列索引, 行索引, "单元格中的内容"); sheet.addCell(labelC); 4、写入到文件 workbook.write...最终的目标就是读取每一行数据,把数据转成用户的对象,保存到表中 实现的步骤:1、根据上传的文件创建Workbook ​ 2、获取到第一个sheet工作表 ​ 3、从第二行开始读取数据 ​ 4、读取每一个单元格

2.5K30

Java数据可视化:报表技术

现在已经停止更新和 维护,所以本课程中只简单地演示一下jxl的代码,不会把它作为重点, 2.2.2 POI POIapache的项目,可对微软的Word,Excel,PPT进行操作,包括office2003...poi现在一直有更新。所以现在主流使用POI。...Apache POIApache软件基金会的开源项目,由Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java语言操作Microsoft Office的功能。...; 3、创建单元格 添加文本类单元格 Label labelC = new Label(列索引, 行索引, "单元格中的内容"); sheet.addCell(labelC); 4、写入到文件 workbook.write...最终的目标就是读取每一行数据,把数据转成用户的对象,保存到表中 实现的步骤:1、根据上传的文件创建Workbook ​ 2、获取到第一个sheet工作表 ​ 3、从第二行开始读取数据 ​ 4、读取每一个单元格

2.6K40
领券