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

使用Apache POI编辑现有Excel文件后,使用单元格的公式将消失

Apache POI是一个用于处理Microsoft Office文件的Java库。它提供了一组API,可以读取、写入和编辑Excel、Word和PowerPoint文件。

在使用Apache POI编辑现有Excel文件后,如果使用单元格的公式,可能会导致公式消失的问题。这是因为Apache POI默认情况下不会重新计算公式,而是将公式的结果作为静态值保存在单元格中。因此,当你编辑Excel文件后,原本存在的公式会被替换为计算后的结果。

要解决这个问题,你可以使用Apache POI提供的公式计算器来重新计算公式。以下是一个示例代码:

代码语言:txt
复制
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelEditor {
    public static void main(String[] args) {
        try {
            // 读取Excel文件
            FileInputStream file = new FileInputStream("path/to/excel.xlsx");
            Workbook workbook = new XSSFWorkbook(file);
            Sheet sheet = workbook.getSheetAt(0);

            // 编辑单元格
            Row row = sheet.getRow(0);
            Cell cell = row.getCell(0);
            cell.setCellValue(10);

            // 重新计算公式
            FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
            evaluator.evaluateAll();

            // 保存修改后的Excel文件
            FileOutputStream outFile = new FileOutputStream("path/to/edited_excel.xlsx");
            workbook.write(outFile);
            outFile.close();

            System.out.println("Excel文件编辑完成。");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上述示例中,我们首先读取Excel文件,然后编辑单元格并设置新的值。接下来,我们创建一个公式计算器,并使用evaluateAll()方法重新计算所有公式。最后,我们将修改后的Excel文件保存到新的文件中。

对于公式的应用场景,它可以用于在Excel中进行各种数学计算、数据分析和数据处理。例如,你可以使用公式计算两个单元格的和、平均值、最大值、最小值等。公式还可以用于条件判断、逻辑运算和字符串处理等。

腾讯云提供了一系列与Excel文件处理相关的产品和服务,例如腾讯云对象存储(COS)用于存储和管理Excel文件,腾讯云函数计算(SCF)用于执行Excel文件的处理逻辑,腾讯云API网关(API Gateway)用于提供Excel文件处理的API接口等。你可以通过以下链接了解更多关于这些产品的信息:

希望以上信息能够帮助你解决使用Apache POI编辑现有Excel文件后公式消失的问题,并了解相关的腾讯云产品和服务。如果还有其他问题,请随时提问。

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

相关·内容

Java进阶-常用Excel处理库比较

2、Apache POI 功能支持读写Excel文件:可以创建新或处理现有Excel文件。支持公式计算:自动计算和更新Excel公式。...下面是一个使用Apache POIExcel文件中创建图表示例代码。此例中我们创建一个简单柱状图,展示两组数据对比。import org.apache.poi.ss.usermodel....2、JExcelAPI 功能支持读写Excel文件:可以创建新Excel文件或修改现有文件单元格格式设置:支持对字体、颜色、背景等单元格样式简单设置。...2、SimpleXLSX 功能支持读写.xlsx文件:支持基本Excel文件创建和编辑。基本单元格操作:允许用户进行单元格读写,包括设置值和获取值。...Apache POI 是功能最为强大库之一,支持广泛Excel格式和复杂操作,如图表、公式和样式处理。它是处理复杂Excel文件理想选择,尤其适合需要执行大量数据处理和报告生成企业级应用。

22622

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

= null) { // 单元格未经过编辑情况下,一定为null //cell为null情况下,对空单元格调用API会导致上述for循环提前结束 CellType cellType...创建工作簿API有3种: HSSFWorkbook: 此API用于操作Excel 2003及之前版本(文件扩展名.xls),优点是导出速度快,缺点是导出行数有局限性,最多为65535行,超出65536...SXSSFWorkbook:POI3.8开始,新增此API,是 XSSFWorkbook API兼容流式扩展,主要解决当使用 XSSFWorkbook 方式导出大数据量时,内存溢出问题,支持导出大量数据...其原理就是使用硬盘空间代替内存:仅保存最新数据行在内存里供查看,在此之前数据行都会被写入到硬盘里(Windows电脑的话,是写入到C盘根目录下temp文件夹)。...,取决于所使用表格软件 BOOLEAN(4), ERROR(5); 写入Excel import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook

38850

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

POI(Poor Obfuscation Implementation)是Apache基金会开源项目,提供了Java语言Excel处理功能。...如POI打开文件需要使用到Java中File对象,需要把文件路径封装成File对象,之后POI才能打开。...Excel条件格式 图表处理 GcExcel和POI都能够创建和编辑Excel图表。 根据POIAPI文档,枚举类型ChartTypes来看,POI仅支持13种基础图表类型。...GcExcel支持 482个公式,同时也支持自定义公式,允许用户使用Java去扩展公式,或实现特定业务公式。 性能对比 通过实际测试,我们发现GcExcel在处理大型Excel文件时表现出色。...与POI相比,GcExcel在加载速度、内存占用和稳定性方面都具有明显优势。 经过尝试发现,在打开包含1000万个单元格Excel文件时,GcExcel需要6.2秒而POI却需要63秒。

15720

Java 实现文件批量导入导出最佳实践(兼容xls,xlsx)

另外还有jxl类似poi方式,不过貌似很久没跟新了,2007之后office好像也不支持,这里就不说了。 2、POI使用详解 2.1 什么是Apache POI?...2.2 POIjar包导入 本次讲解使用maven工程,jar包版本使用poi-3.14和poi-ooxml-3.14。目前最新版本是3.16。...-- poi包 3.15版本单元格类型获取方式有调整 --> org.apache.poi...2.3.2 对象 本文主要介绍HSSF和XSSF两种组件,简单讲HSSF用来操作Office 2007版本前excel.xls文件,XSSF用来操作Office 2007版本excel.xlsx文件...在实际应用中导出Excel文件往往需要阅读和打印,这就需要对输出Excel文档进行排版和样式设置,主要操作有合并单元格、设置单元格样式、设置字体样式等。

3.8K41

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

一、简介 Apache POIApache软件基金会免费开源跨平台 Java API,POI提供API给Java程序对Microsoft Office格式(Excel、WORD、PowerPoint...二、POI结构说明 HSSF:提供读写Microsoft Excel XLS格式档案功能。 XSSF:提供读写Microsoft Excel OOXML XLSX格式档案功能。...):创建一个关联输入流工作簿,可以一个excel文件封装成工作簿 HSSFSheet createSheet(String sheetname):创建一个新Sheet HSSFSheet getSheet...style):设置单元格样式,例如字体、加粗、格式化 setCellFormula(String formula):设置计算公式,计算结果作为单元格值,也提供了异常常用函数,如求和"sum...>3.8 2、Demo1:生成EXCEL表格 一个入门小Demo,文件放在桌面或者指定绝对路径,文件名称为testexcel.xls文件,即可;

38510

Apache POI使用详解

一 :简介 开发中经常会设计到excel处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache poi, 另一个是 Java Excel Apache...是一开放源码项目,通过它Java开发人员可以读取Excel文件内容、创建新Excel文件、更新已经存在Excel文件。...jxl 由于其小巧 易用特点, 逐渐已经取代了 POI-excel地位, 成为了越来越多java开发人员生成excel文件首选。...由于apache poi 在项目中用比较多,本篇博客只讲解apache poi,不讲jxl 二:Apache POI常用类 HSSF - 提供读写Microsoft Excel XLS格式档案功能...); // 创建一个关联输入流工作簿,可以一个excel文件封装成工作簿 HSSFSheet createSheet(String sheetname); 创建一个新Sheet HSSFSheet

3.3K10

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

文件导入导出功能目前主要是两家独大,一个就是ApachePOI,另一家就是阿里EasyExcel.这里两种技术我都会在下面的文章里面详细讲解. 2.POI: 2.1-POI介绍: POI全称是:...与07版Excel区别 在使用POI之前,我们需要先了解一下Excel版本更替,这样能够方便我们更好了解POI使用....并且他们返回值都是int类型,所以这就行号解释了为什么能够直接调用这些变量了. 2.7-POI计算公式 这里我们在之前test.xls文件里面为一个单元格增加了一个公式: ?...Excel表格步骤是一样,但是在真正使用了EasyExcel之后才发现,POI真的是弱爆了,并且在POI中我们需要使用到大量for循环,这样会严重影响我们程序性能,但是EasyExcel就已经帮我们优化好了...数据也的确已经插入进来了 上面的代码中有两段执行数据写入方法,第一段代码就是直接数据写入到文件中,第二段代码就类似于POI通过for循环数据一条一条写入进去,显然第二种方法效率较低,推荐使用第一种

1.7K30

Java数据可视化:报表技术

简单说:报表就是用表格、图表等格式来动态显示数据,可以用公式表示为:“报表 = 多样格式 + 动态数据”。...现在已经停止更新和 维护,所以本课程中只时简单地演示一下jxl代码,不会把它作为重点, 2.2.2 POI POIapache项目,可对微软Word,Excel,PPT进行操作,包括office2003...Apache POIApache软件基金会开源项目,由Java编写免费开源跨平台 Java API,Apache POI提供API给Java语言操作Microsoft Office功能。...,新版本excel已经出现十多年了,使用人群已经比较多了,所以目前做项目大都做是导出新版本excel,而jxl只能操作低版本excel,所以现在使用jxl做项目已经比较少见,那我们在这里使用jxl...3.1 使用jxl导出基本知识点 通过WritableWorkbook,WritableSheet,Label这三个对象我们就可以实现Excel文件导出工作。

2.6K40

报表技术

简单说:报表就是用表格、图表等格式来动态显示数据,可以用公式表示为:“报表 = 多样格式 + 动态数据”。...现在已经停止更新和 维护,所以本课程中只时简单地演示一下jxl代码,不会把它作为重点, 2.2.2 POI POIapache项目,可对微软Word,Excel,PPT进行操作,包括office2003...Apache POIApache软件基金会开源项目,由Java编写免费开源跨平台 Java API,Apache POI提供API给Java语言操作Microsoft Office功能。...,新版本excel已经出现十多年了,使用人群已经比较多了,所以目前做项目大都做是导出新版本excel,而jxl只能操作低版本excel,所以现在使用jxl做项目已经比较少见,那我们在这里使用jxl...3.1 使用jxl导出基本知识点 通过WritableWorkbook,WritableSheet,Label这三个对象我们就可以实现Excel文件导出工作。

2.5K30

POI和EasyExcel-你还在为导入导出数据苦恼吗?

文章目录 写在前面 POI 导入依赖 写入 读取 计算公式 EasyExcel 导入依赖 写入 读取 实战 写在前面 ---- 在开发中经常会涉及到excel处理,比如导出用户信息为excel表格...、打印报表、月销售情况、成绩单等等(导出数据),还有excel信息录入到网站数据库等(导入数据),我们不可能手动操作,所以介绍ApachePOI和阿里巴巴EasyExcel。...POI ---- Apache POIApache软件基金会开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写功能。...官网https://poi.apache.org/ xls和xlsx 首先注意下xls(2003版)和xlsx(2007版)区别,都是excel格式,后缀名不同。...计算公式 excel还有很多公式POI同样也可以处理。 ?

4.2K11

Apache POI与easyExcel:Excel文件导入导出技术深度分析

在导入Excel文件时,Apache POI会将整个文件加载到内存中,然后提供API来访问和操作文件各个元素,如单元格、行、列等。...1.1 POI实现读取excel 下面是一演示如何使用 Apache POI 导入(读取)和导出(写入)Excel 文件(.xlsx 格式) org.apache.poi...1.2 poi实现写入excel使用Apache POI写入.xlsx格式Excel文件时,您需要创建一个XSSFWorkbook对象来表示整个工作簿,然后在其中创建XSSFSheet对象来表示工作表...EasyExcel 是在在POI解析引擎基础上改进,但并没有完全重写 Apache POI 整个解析引擎,特别是对于 XLSX 文件格式(即 Excel 2007 及以上版本所使用格式,POI...四、总结 Apache POI和easyExcel都是优秀Java库,用于处理Excel文件Apache POI以其全面性和灵活性著称,提供了对Excel文件全面支持。

43610

来,通过 Excel 来认识神器——POI

Apache三方包,用来操作微软office文档,多数时候用来操作excel,所以这里就以excel方面来说明。...2.1 工作簿 Workbook 创建或维护Excel工作簿所有类超接口,Workbook,属于org.apache.poi.ss.usermodel包。...它与MS-Office版本2007或更高版本兼容 所以在针对不同版本excel时,需要对应以上使用不同Workbook。...,就很简单了,另外包括字体,公式,超链接等,都有对应封装类,此处只提出了核心几个,需要了解更多需要自行展开。...文档 可用注解定义标签名和列名,写了个方法,可以某个类List转换为对应Excel文档,列名如果在不使用注解情况下默认为属性名: 推荐阅读:Java 中初始化 List 集合 6 种方式!

1.1K20

java实现Excel导入导出功能

在本篇文章中,我们讨论如何使用Java实现Excel导入导出功能。一、Excel文件读取在Java中,我们可以使用Apache POI库来读取Excel文件。...以下是使用POI库来读取Excel文件基本步骤:添加POI依赖在使用POI之前,我们需要将其添加到项目中。...例如,以下代码获取Excel文件中第一个工作表引用:javaCopy code// 获取第一个工作表Sheet sheet = workbook.getSheetAt(0);获取单元格值一旦我们获取了工作表对象...// 关闭工作簿workbook.close();二、Excel文件写入除了读取Excel文件,我们还可以使用POI库来编写Excel文件。...以下是使用POI库来写入Excel文件基本步骤:创建工作簿首先,我们需要创建一个工作簿对象,用于表示Excel文件

2.2K20

通过 Excel 来认识神器 Apache POI

1、POI是什么 Apache POI - the Java API for Microsoft Documents,顾名思义,Apache三方包,用来操作微软office文档,多数时候用来操作excel...2.1 工作簿 Workbook 创建或维护Excel工作簿所有类超接口,Workbook,属于org.apache.poi.ss.usermodel包。...它与MS-Office版本2007或更高版本兼容 所以在针对不同版本excel时,需要对应以上使用不同Workbook。...,就很简单了,另外包括字体,公式,超链接等,都有对应封装类,此处只提出了核心几个,需要了解更多需要自行展开。...文档 可用注解定义标签名和列名,写了个方法,可以某个类List转换为对应Excel文档,列名如果在不使用注解情况下默认为属性名: 类: @Excel(name = "学生标签页") public

94410
领券