Java 中如何读取 Excel 文件公式计算后的值
有一个excel文件,里面包含很多公式和公式计算后的值。我想通过java读取某个公式值,应该怎么实现?
我用poi尝试过了,但对于某些公式获取的结果不是很理想,请问还有其他方案吗?
在GcExcel中,可以通过setFormula设置公式,之后使用getValue可以直接获取到公式计算的结果。
public void GetFormulaValue() { Workbook wb = new Workbook(); IWorksheet sheet = wb.getWorksheets().get(0); sheet.getRange("A1").setValue(1); sheet.getRange("B1").setValue(2); sheet.getRange("C1").setFormula("=SUM(A1,B1)"); // 输出: C1 的结果是:3.0 System.out.print("C1 的结果是:" + sheet.getRange("C1").getValue());}
首先,你需要知道的是,Apache POI 只能解析单元格的值,但不能解析公式的结果。如果你想读取 Excel 文件公式计算后的值,你需要使用其他工具。
我建议你使用 JExcelApi。这是一个开源的 Java 库,可以读取、写入和操作 Excel 文件。你可以用它来获取单元格的公式和结果。
以下是一个简单的例子:
import jxl.Workbook;import jxl.read.biff.Biff8;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import java.io.File;import java.io.IOException;public class ReadExcel { public static void main(String[] args) { try { Workbook workbook = Workbook.getWorkbook(new File("yourfile.xls")); int numOfSheets = workbook.getNumberOfSheets(); for (int i = 0; i < numOfSheets; i++) { System.out.println("sheetname:" + workbook.getSheetName(i)); WritableSheet sheet = null; try { sheet = workbook.getSheet(i); } catch (IOException e) { e.printStackTrace(); } int rownum = sheet.getPhysicalNumberOfRows(); for (int row = 0; row < rownum; row++) { int cellnum = sheet.getRow(row).getPhysicalNumberOfElements(); for (int cell = 0; cell < cellnum; cell++) { Object result = sheet.read(row, cell); // 这里读取的是单元格的值,包括公式和结果 System.out.println("cell:" + result); // 输出单元格的值,包括公式和结果 } } } } catch (IOException e) { e.printStackTrace(); } catch (Biff8.BadRowException e) { e.printStackTrace(); } catch (jxl.biff.BadFileException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } finally { if (workbook != null) { try { workbook.close(); // 关闭 workbook,释放资源 } catch (IOException e) {
问题内容: 我想用3列N行从Java读写Excel文件,在每个单元格中打印一个字符串。谁能给我简单的代码片段吗?我是否需要使用任何外部库,或者Java是否内置支持? 我要执行以下操作: 问题答案: Apache POI可以为你做到这一点。特别是HSSF模块。该快速指南是最有用的。这是你想做什么的方法-专门创建一张纸并将其写出来。
我对Java编程是新手。我当前的项目要求我读取excel表中的嵌入式(ole)文件并获取其中的文本内容。阅读嵌入式word文件的例子很好,但是我无法找到阅读嵌入式pdf文件的帮助。通过看类似的例子尝试了很少的事情....但没成功。
问题内容: 我已经搜索了stackoverflow,但是没有找到明确的答案。如何将数据从XLS文件的特定行和列读取到我的Android应用程序?如何读取XLS文件?我不想将其转换为CSV,因为在尝试将其转换时出现错误。 也许我可以使用此http://www.andykhan.com/jexcelapi/tutorial.html#reading,但我什至不知道如何将其导入到我的项目中。请帮忙。 问
该编码能够读取excel文件中的小数据...但不读取excel文件中的大数据文件....如何进一步修改代码?
如何用Java将一个Excel的文件的数据读取到另一个Excel中? 我有两个excel文件,希望将A文件中的数据合并在B文件中。有没有推荐的方案
Java 中如何按列读取 Excel 数据 我有一个excel文件,希望用java读取某个表单某列的值,以便做后续的操作。有推荐的方案吗?