精华内容
下载资源
问答
  • 最近在使用POI操作excel文件时,会报如下错误: org.apache.poi.ss.formula.eval.NotImplementedException: Error evaluating cell 'AAA'!E5 at org.apache.poi.ss.formula.WorkbookEvaluator.addExceptionInfo...

    一、问题

    最近在使用POI操作excel文件时,会报如下错误:

    org.apache.poi.ss.formula.eval.NotImplementedException: Error evaluating cell 'AAA'!E5
    	at org.apache.poi.ss.formula.WorkbookEvaluator.addExceptionInfo(WorkbookEvaluator.java:332)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:273)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluate(WorkbookEvaluator.java:205)
    	at org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.evaluateFormulaCellValue(HSSFFormulaEvaluator.java:374)
    	at org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.evaluateFormulaCell(HSSFFormulaEvaluator.java:234)
    	at com.xmas.kenbb.test.PoiTest.main(PoiTest.java:40)
    Caused by: org.apache.poi.ss.formula.eval.NotImplementedException: Error evaluating cell 'WinProbEst - Table 1-1'!J5
    	at org.apache.poi.ss.formula.WorkbookEvaluator.addExceptionInfo(WorkbookEvaluator.java:332)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:273)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateReference(WorkbookEvaluator.java:702)
    	at org.apache.poi.ss.formula.SheetRefEvaluator.getEvalForCell(SheetRefEvaluator.java:48)
    	at org.apache.poi.ss.formula.SheetRangeEvaluator.getEvalForCell(SheetRangeEvaluator.java:74)
    	at org.apache.poi.ss.formula.LazyRefEval.getInnerValueEval(LazyRefEval.java:43)
    	at org.apache.poi.ss.formula.eval.OperandResolver.chooseSingleElementFromRef(OperandResolver.java:179)
    	at org.apache.poi.ss.formula.eval.OperandResolver.getSingleValue(OperandResolver.java:62)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.dereferenceResult(WorkbookEvaluator.java:570)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:521)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:263)
    	... 4 more
    Caused by: org.apache.poi.ss.formula.eval.NotImplementedException: Error evaluating cell 'BBB'!I5
    	at org.apache.poi.ss.formula.WorkbookEvaluator.addExceptionInfo(WorkbookEvaluator.java:332)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:273)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateReference(WorkbookEvaluator.java:702)
    	at org.apache.poi.ss.formula.SheetRefEvaluator.getEvalForCell(SheetRefEvaluator.java:48)
    	at org.apache.poi.ss.formula.SheetRangeEvaluator.getEvalForCell(SheetRangeEvaluator.java:74)
    	at org.apache.poi.ss.formula.LazyRefEval.getInnerValueEval(LazyRefEval.java:43)
    	at org.apache.poi.ss.formula.eval.OperandResolver.chooseSingleElementFromRef(OperandResolver.java:179)
    	at org.apache.poi.ss.formula.eval.OperandResolver.getSingleValue(OperandResolver.java:62)
    	at org.apache.poi.ss.formula.eval.TwoOperandNumericOperation.singleOperandEvaluate(TwoOperandNumericOperation.java:29)
    	at org.apache.poi.ss.formula.eval.TwoOperandNumericOperation.evaluate(TwoOperandNumericOperation.java:36)
    	at org.apache.poi.ss.formula.functions.Fixed2ArgFunction.evaluate(Fixed2ArgFunction.java:33)
    	at org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:119)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:503)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:263)
    	... 13 more
    Caused by: org.apache.poi.ss.formula.eval.NotImplementedException: Error evaluating cell 'BBB'!E5
    	at org.apache.poi.ss.formula.WorkbookEvaluator.addExceptionInfo(WorkbookEvaluator.java:332)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:273)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateReference(WorkbookEvaluator.java:702)
    	at org.apache.poi.ss.formula.SheetRefEvaluator.getEvalForCell(SheetRefEvaluator.java:48)
    	at org.apache.poi.ss.formula.SheetRangeEvaluator.getEvalForCell(SheetRangeEvaluator.java:74)
    	at org.apache.poi.ss.formula.LazyRefEval.getInnerValueEval(LazyRefEval.java:43)
    	at org.apache.poi.ss.formula.eval.OperandResolver.chooseSingleElementFromRef(OperandResolver.java:179)
    	at org.apache.poi.ss.formula.eval.OperandResolver.getSingleValue(OperandResolver.java:62)
    	at org.apache.poi.ss.formula.eval.TwoOperandNumericOperation.singleOperandEvaluate(TwoOperandNumericOperation.java:29)
    	at org.apache.poi.ss.formula.eval.TwoOperandNumericOperation.evaluate(TwoOperandNumericOperation.java:35)
    	at org.apache.poi.ss.formula.functions.Fixed2ArgFunction.evaluate(Fixed2ArgFunction.java:33)
    	at org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:119)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:503)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:263)
    	... 25 more
    Caused by: org.apache.poi.ss.formula.eval.NotImplementedException: Error evaluating cell 'BBB'!F52
    	at org.apache.poi.ss.formula.WorkbookEvaluator.addExceptionInfo(WorkbookEvaluator.java:332)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:273)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateReference(WorkbookEvaluator.java:702)
    	at org.apache.poi.ss.formula.SheetRefEvaluator.getEvalForCell(SheetRefEvaluator.java:48)
    	at org.apache.poi.ss.formula.SheetRangeEvaluator.getEvalForCell(SheetRangeEvaluator.java:74)
    	at org.apache.poi.ss.formula.LazyAreaEval.getRelativeValue(LazyAreaEval.java:51)
    	at org.apache.poi.ss.formula.LazyAreaEval.getRelativeValue(LazyAreaEval.java:45)
    	at org.apache.poi.ss.formula.eval.AreaEvalBase.getValue(AreaEvalBase.java:128)
    	at org.apache.poi.ss.formula.functions.Sumproduct.evaluateAreaSumProduct(Sumproduct.java:157)
    	at org.apache.poi.ss.formula.functions.Sumproduct.evaluate(Sumproduct.java:77)
    	at org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:132)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:503)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:263)
    	... 37 more
    Caused by: org.apache.poi.ss.formula.eval.NotImplementedFunctionException: NORMDIST
    	at org.apache.poi.ss.formula.functions.NotImplementedFunction.evaluate(NotImplementedFunction.java:40)
    	at org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:132)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:503)
    	at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:263)
    	... 48 more

    原来,源错误在于最近一个异常:

    NotImplementedFunctionException: NORMDIST

    二、查找资料

    刚开始时看不太明白这个异常的意思,大概是英文领悟能力欠佳吧。

    于是,查看官方文档:http://poi.apache.org/spreadsheet/formula.html,看到“公式支持”里有说明,说什么支持什么还不支持,毕竟excel的东西不少,要完全支持得需多方面的支持。看到“Supported Functions”里有这么一段话:


    The methods you need are available on org.apache.poi.ss.formula.eval.FunctionEval. To find which functions your copy of Apache POI supports, use getSupportedFunctionNames() to get a list of the implemented function names. For the list of functions that POI knows the name of, but doesn't currently implement, use getNotSupportedFunctionNames()


    意思是说,目前POI支持了部分函数,尚有部分函数未提供支持,试着把它们打印出来,如下:


    支持的函数:

    [ABS, ACOS, ACOSH, ADDRESS, AND, ASIN, ASINH, ATAN, ATAN2, ATANH, AVEDEV, AVERAGE, CEILING, CHAR, CHOOSE, CLEAN, CODE, COLUMN, COLUMNS, COMBIN, CONCATENATE, COS, COSH, COUNT, COUNTA, COUNTBLANK, COUNTIF, DATE, DAY, DAYS360, DEGREES, DEVSQ, DOLLAR, ERROR.TYPE, EVEN, EXACT, EXP, FACT, FALSE, FIND, FIXED, FLOOR, FV, HLOOKUP, HOUR, HYPERLINK, IF, INDEX, INDIRECT, INT, INTERCEPT, IPMT, IRR, ISBLANK, ISERROR, ISLOGICAL, ISNA, ISNONTEXT, ISNUMBER, ISREF, ISTEXT, LARGE, LEFT, LEN, LN, LOG, LOG10, LOOKUP, LOWER, MATCH, MAX, MAXA, MEDIAN, MID, MIN, MINA, MINUTE, MIRR, MOD, MODE, MONTH, NA, NOT, NOW, NPER, NPV, ODD, OFFSET, OR, PERCENTILE, PI, PMT, POISSON, POWER, PPMT, PRODUCT, PROPER, PV, RADIANS, RAND, RANK, RATE, REPLACE, REPT, RIGHT, ROMAN, ROUND, ROUNDDOWN, ROUNDUP, ROW, ROWS, SEARCH, SECOND, SIGN, SIN, SINH, SLOPE, SMALL, SQRT, STDEV, SUBSTITUTE, SUBTOTAL, SUM, SUMIF, SUMPRODUCT, SUMSQ, SUMX2MY2, SUMX2PY2, SUMXMY2, T, TAN, TANH, TEXT, TIME, TODAY, TRIM, TRUE, TRUNC, UPPER, VALUE, VAR, VARP, VLOOKUP, WEEKDAY, YEAR]

    不支持的函数:
    [AREAS, ASC, AVERAGEA, BETADIST, BETAINV, BINOMDIST, CELL, CHIDIST, CHIINV, CHITEST, CONFIDENCE, CORREL, COVAR, CRITBINOM, DATEDIF, DATESTRING, DATEVALUE, DAVERAGE, DB, DBCS, DCOUNT, DCOUNTA, DDB, DGET, DMAX, DMIN, DPRODUCT, DSTDEV, DSTDEVP, DSUM, DVAR, DVARP, EXPONDIST, FDIST, FINDB, FINV, FISHER, FISHERINV, FORECAST, FREQUENCY, FTEST, GAMMADIST, GAMMAINV, GAMMALN, GEOMEAN, GETPIVOTDATA, GROWTH, HARMEAN, HYPGEOMDIST, INFO, ISERR, ISPMT, KURT, LEFTB, LENB, LINEST, LOGEST, LOGINV, LOGNORMDIST, MDETERM, MIDB, MINVERSE, MMULT, N, NEGBINOMDIST, NORMDIST, NORMINV, NORMSDIST, NORMSINV, NUMBERSTRING, PEARSON, PERCENTRANK, PERMUT, PHONETIC, PROB, QUARTILE, REPLACEB, RIGHTB, RSQ, SEARCHB, SKEW, SLN, STANDARDIZE, STDEVA, STDEVP, STDEVPA, STEYX, SYD, TDIST, TIMEVALUE, TINV, TRANSPOSE, TREND, TRIMMEAN, TTEST, TYPE, USDOLLAR, VARA, VARPA, VDB, WEIBULL, ZTEST]

    三、总结

    如果操作的excel需要使用到不被支持的函数,就需要自行添加相关函数的支持,或者考虑使用其它技术插件了。
    POI注册一个函数大概是使用这个方法:FunctionEval.registerFunction(name, func);
    展开全文
  • poi读取公式

    2014-11-07 01:00:37
    poi读取公式,可以直接用getNumber.. 也可以用




    poi读取公式,可以直接用getNumber..

    1.也可以用evaluator,但是遇到当多层次公式,可能失效;当公式不存在公式库中时也会报错。

    2. 自己写公式注册,再饮用

    3....

    展开全文
  • poi处理公式

    2013-01-15 15:39:20
    POI读取带有公式的Excel单元格   分类:JAVA2012-01-11 13:31818人阅读评论(0)收藏举报   项目中需要使用Excel导入数据,读取Excel单元格的方法如下:   [java]view plaincopyprint?   1. private ...

     

    POI读取带有公式的Excel单元格

     

    分类:JAVA2012-01-11 13:31818人阅读评论(0)收藏举报

     

    项目中需要使用Excel导入数据,读取Excel单元格的方法如下:

     

    [java]view plaincopyprint?

     

    1.  private static String getStringCellValue(Cell cell) {// 获取单元格数据内容为字符串类型的数据

     

    2.  String strCell = "";

     

    3.  if (cell == null) {

     

    4.  return "";

     

    5.  }

     

    6.  switch (cell.getCellType()) {

     

    7.  case Cell.CELL_TYPE_FORMULA:

     

    8.  // cell.getCellFormula();

     

    9.  try {

     

    10./*

     

    11.* 此处判断使用公式生成的字符串有问题,因为HSSFDateUtil.isCellDateFormatted(cell)判断过程中cell

     

    12.* .getNumericCellValue();方法会抛出java.lang.NumberFormatException异常

     

    13.*/

     

    14.if (HSSFDateUtil.isCellDateFormatted(cell)) {

     

    15.Date date = cell.getDateCellValue();

     

    16.strCell = (date.getYear() + 1900) + "-" + (date.getMonth() + 1) +"-" + date.getDate();

     

    17.break;

     

    18.} else {

     

    19.strCell = String.valueOf(cell.getNumericCellValue());

     

    20.}

     

    21.} catch (IllegalStateException e) {

     

    22.strCell = String.valueOf(cell.getRichStringCellValue());

     

    23.}

     

    24.break;

     

    25.case Cell.CELL_TYPE_STRING:

     

    26.strCell = cell.getStringCellValue();

     

    27.break;

     

    28.case Cell.CELL_TYPE_NUMERIC:

     

    29.if (HSSFDateUtil.isCellDateFormatted(cell)) {

     

    30.strCell = getDateCellValue(cell);

     

    31.break;

     

    32.} else {

     

    33.strCell = String.valueOf(cell.getNumericCellValue());

     

    34.break;

     

    35.}

     

    36.case Cell.CELL_TYPE_BOOLEAN:

     

    37.strCell = String.valueOf(cell.getBooleanCellValue());

     

    38.break;

     

    39.case Cell.CELL_TYPE_BLANK:

     

    40.strCell = "";

     

    41.break;

     

    42.default:

     

    43.strCell = "";

     

    44.break;

     

    45.}

     

    46.return strCell;

     

    47.}

     

    private static String getStringCellValue(Cell cell) {// 获取单元格数据内容为字符串类型的数据

     

            String strCell = "";

     

            if (cell == null) {

     

                return "";

     

            }

     

            switch (cell.getCellType()) {

     

            case Cell.CELL_TYPE_FORMULA:

     

                // cell.getCellFormula();

     

                try {

     

                /*

     

                 * 此处判断使用公式生成的字符串有问题,因为HSSFDateUtil.isCellDateFormatted(cell)判断过程中cell

     

                 * .getNumericCellValue();方法会抛出java.lang.NumberFormatException异常

     

                 */

     

                 if (HSSFDateUtil.isCellDateFormatted(cell)) {

     

                   Date date = cell.getDateCellValue();

     

                   strCell = (date.getYear() + 1900) + "-" + (date.getMonth() + 1) +"-" + date.getDate();

     

                   break;

     

                 } else {

     

                   strCell = String.valueOf(cell.getNumericCellValue());

     

                 }

     

                 } catch (IllegalStateException e) {

     

                   strCell = String.valueOf(cell.getRichStringCellValue());

     

                 }

     

                break;

     

            case Cell.CELL_TYPE_STRING:

     

                strCell = cell.getStringCellValue();

     

                break;

     

            case Cell.CELL_TYPE_NUMERIC:

     

                if (HSSFDateUtil.isCellDateFormatted(cell)) {

     

                    strCell = getDateCellValue(cell);

     

                    break;

     

                } else {

     

                    strCell = String.valueOf(cell.getNumericCellValue());

     

                    break;

     

                }

     

            case Cell.CELL_TYPE_BOOLEAN:

     

                strCell = String.valueOf(cell.getBooleanCellValue());

     

                break;

     

            case Cell.CELL_TYPE_BLANK:

     

                strCell = "";

     

                break;

     

            default:

     

                strCell = "";

     

                break;

     

            }

     

            return strCell;

     

        }

     

    这个方法在导入没有公式的Excel时没有问题,今天遇到含有公式的Excel,如图:

     


    报错信息如下:

     

     

     

    经调试发现HSSFDateUtil.isCellDateFormatted(cell)判断过程中会执行cell.getNumericCellValue();方法,字符串“201201FSSH300466”在转换成数字的时候出错了,在网上搜了一下,大多数的解决方法是:

     

    [java]view plaincopyprint?

     

    1.  case HSSFCell.CELL_TYPE_FORMULA:

     

    2.  try {

     

    3.  value = String.valueOf(cell.getNumericCellValue());

     

    4.  } catch (IllegalStateException e) {

     

    5.  value = String.valueOf(cell.getRichStringCellValue());

     

    6.  }

     

    7.  break;

     

    case HSSFCell.CELL_TYPE_FORMULA:

     

     try {

     

         value = String.valueOf(cell.getNumericCellValue());

     

    } catch (IllegalStateException e) {

     

         value = String.valueOf(cell.getRichStringCellValue());

     

    }

     

    break;

     

    经测试发现,在执行cell.getNumericCellValue()方法时还是抛出NumberFormatException异常,于是将try/catch中的方法互换:

     

    [java]view plaincopyprint?

     

    1.  case HSSFCell.CELL_TYPE_FORMULA:

     

    2.  try {

     

    3.  strCell = String.valueOf(cell.getStringCellValue());

     

    4.  } catch (IllegalStateException e) {

     

    5.  strCell = String.valueOf(cell.getNumericCellValue());

     

    6.  }

     

    7.  break;

     

    case HSSFCell.CELL_TYPE_FORMULA:

     

    try {

     

           strCell = String.valueOf(cell.getStringCellValue());

     

    } catch (IllegalStateException e) {

     

           strCell = String.valueOf(cell.getNumericCellValue());

     

    }

     

    break;

     

    这样对于字符串cell.getStringCellValue()方法即可取得其值,如果公式生成的是数值,使用cell.getStringCellValue()方法会抛出IllegalStateException异常,在异常处理中使用cell.getNumericCellValue();即可。

     

     

     

    展开全文
  • 使用poi读取excel时如果出现公式需要使用FormulaEvaluator 接口 使用方法: cell是列值 Workbook工作簿 Cell cell = row.getCell(0); Workbook wb = new HSSFWorkbook(文件); FormulaEvaluator ...

    在使用poi读取excel时如果出现公式需要使用FormulaEvaluator 接口

    使用方法:

    cell是列值

    Workbook工作簿

    Cell cell = row.getCell(0);

    Workbook wb = new HSSFWorkbook(文件);

    FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();

    cellValue=getCellValue(evaluator .evaluator.evaluateInCell(cell));


    展开全文
  • poi 插入公式

    千次阅读 2018-11-15 09:42:20
    Cell cell = row.createCell(colIdx++);  CellAddress a =row.createCell(colIdx).getAddress();  CellAddress b =row.createCell(colIdx+4...
  • POI公式的支持

    2019-01-09 20:37:25
    POI公式的支持 2009年11月26日 09:48:00 山巅 阅读数:7078 标签: stringc 更多 个人分类: POI 版权声明:本文为博主原创文章,未经博主允许不得转载。 ...
  • POI Excel公式计算引擎服务 计算引擎服务 Excel公式计算引擎服务 idea Excel公式计算引擎服务 package com.example.demo.controller; import com.alibaba.fastjson.JSONObject; import org.springframework....
  • } 最后,这是我测试时用的的包 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.FormulaEvaluator; import org.apache.poi.ss....
  • java使用POI生成Excel,单元格使用公式计算,使用cell.getNumericCellValue()获取值,得到的值一直为0. 因为我需要判断单元格的值为0设置不同的样式,可以使用以下方法: FormulaEvaluator evaluator = c.getSheet()...
  • POI 公式

    2016-11-25 18:15:42
    本章将介绍如何使用Java编程应用不同单元公式的过程。 Excel应用程序的基本目的是通过应用公式就可以保持数值数据。 在公式中,我们通过动态值,或在Excel工作表中的值的位置。在执行这个公式,就会得到想要的结果...
  • 采用poi公式单元格缓存计算,每当有单元格值被修改时便调用 notifyUpdatedCell(Cell cell) 提示缓存需要修改。 问题描述:在一次计算(之前该Excel已经多次计算使用过且结果正确)通过...
  • 使用poi读取excel,刷新公式时报错如下,请教如何解决 java.lang.RuntimeException: Invalid ValueEval type passed for conversion: (class org.apache.poi.ss.formula.eval.MissingArgEval) at org.apache....
  • 使用POI导出Excel(并使用公式

    千次阅读 2018-11-26 17:30:55
    使用POI导出Excel(并使用公式使用java直接生成Excel并填充数据 可以参考POI官方文档,就是对Sheet,row,cell,Formula等操作, https://poi.apache.org/components/index.html 这种方式也可以生成复杂样式的...
  • POI读取公式的值

    千次阅读 2015-01-25 21:56:00
    package poi; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache....
  • poi 读取公式的值出现的问题

    千次阅读 2018-08-25 21:46:37
    使用poi读取excel表里,常常遇到类型是CELL_TYPE_FORMULA的单元格时,通常使用evaluator Workbook wb = cell.getSheet().getWorkbook(); CreationHelper crateHelper = wb.getCreationHelper(); ...
  • 如何使用Apache POI设置Excel的公式字段 1. 概述 在本文中,我们将通过一个简单的示例来演示如何使用Apache POI在Microsoft Excel电子表格中设置公式字段 2. Apache POI Apache POI是一个流行的开源Java库,它提供了...
  • JAVA POI使用

    万次阅读 多人点赞 2018-02-01 11:44:48
    下载地址 https://archive.apache.org/dist/poi/release/bin/ ...Poi-3.10-Final.jar (用于xls)Poi-ooxml-3.10-Final.jar (用于xlsx)Poi-ooxml-schemas-3.10.jarXmlbeans-2.30.jardom4j-1.6.1.jarp
  • Apache POI使用详解

    万次阅读 多人点赞 2017-06-05 20:11:35
    一 :简介开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache 的poi, 另一个是 Java Excel Apache POI 简介是用Java编写的免费开源的跨平台的 Java API,...
  • poi 公式缓存,多次计算公式值不变

    千次阅读 2016-03-10 12:59:28
    原因是poi缓存了之前公式的计算结果,被引用单元格值改变了再次计算公式的值是缓存的值,这种设计加快了poi的计算速度,单数计算的数据不准确。为此我们需要禁止poi缓存公式的值。 实时获取计算式的值的两种方法 用...
  • POI使用

    2017-08-28 17:10:06
    POI使用详解 Apache POI使用详解 1.POI结构与常用类 (1)POI介绍  Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 .NET的开发人员则...
  • POI导入公式的问题.

    2013-06-28 11:43:50
    公式为:50+10.(显示的是60) 在程序源码中读取到的是Empty String. 采取 case HSSFCell.CELL_TYPE_FORMULA: try { value = String.valueOf(cell.getNumericCellValue()); } catch (IllegalStateException...
  • 1.POI结构与常用类 (1)POI介绍  Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 .NET的开发人员则可以利用NPOI (POI for .NET) 来存取 Microsoft ...
  • java使用poi读写word中的公式(三)

    万次阅读 热门讨论 2019-08-09 16:03:59
    java使用poi读取word(一) java使用poi读写word中的图片(二) 准备工作 需要安装一个第三方公式插件建 AxMath官网 MathType中文官网(国内某公司代理) XML分析 先来分析一下xml 正常文本: <w:r> 标签...
  • poi公式处理

    千次阅读 2017-10-16 20:38:49
    Java使用HSSF读取Excel表中公式列的方法 FileInputStream fis = new FileInputStream("c:/temp/test.xls"); HSSFWorkbook wb = new HSSFWorkbook(fis); HSSFSheet sheet = wb.getSheetAt(0); HSSFFormulaEvaluator ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,089
精华内容 2,835
关键字:

poi使用公式