Java Apache POI移动行导致运行时异常

5
我有一个简单的Excel表格,其中包含基本的Excel公式,例如求和以及从另一个单元格检索值。现在,我想在两个现有行之间插入一条空白行(我已经查看了{{link1:如何使用HSSF(Apache POI)在现有Excel中在两行之间插入一行},但我遇到了一些奇怪的错误)。
因此,我尝试通过以下方式移动行:
worksheet.shiftRows(15,16,2);

我收到的回应是:

Exception in thread "main" java.lang.RuntimeException: not implemented yet
    at org.apache.poi.xssf.usermodel.XSSFEvaluationWorkbook.getExternalSheetIndex(XSSFEvaluationWorkbook.java:127)
    at org.apache.poi.ss.formula.FormulaParser.createAreaRefParseNode(FormulaParser.java:615)
    at org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:462)
    at org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:268)
    at org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1119)
    at org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1079)
    at org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1066)
    at org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1426)
    at org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1526)
    at org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1510)
    at org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1467)
    at org.apache.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1447)
    at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:1568)
    at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:176)
    at org.apache.poi.xssf.usermodel.helpers.XSSFRowShifter.updateNamedRanges(XSSFRowShifter.java:116)
    at org.apache.poi.xssf.usermodel.XSSFSheet.shiftRows(XSSFSheet.java:2363)
    at org.apache.poi.xssf.usermodel.XSSFSheet.shiftRows(XSSFSheet.java:2306)
    at com.shel.myProgram.workbook.copyAndInsert(workbook.java:120)
    at com.shel.myProgram.workbook.test(workbook.java:111)
    at com.shel.myProgram.driver.main(driver.java:24)

编辑:

我正在使用这个依赖项:

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.9</version>
    </dependency>

请查看 org.apache.poi.xssf.usermodel.XSSFEvaluationWorkbook 的第127行。也许在你的库中,这个函数“尚未实现”。 - Thrash Bean
@ThrashBean 我在 org.apache.poi.xssf.usermodel.XSSFEvaluationWorkbook 中遇到了 127 不是有效数字的问题... 我很困惑。实际上,文件似乎是空的。我正在使用 Apache POI 版本 3.9。 - Stupid.Fat.Cat
是的,虽然启用了宏。@ThrashBean - Stupid.Fat.Cat
抱歉,这个不行,请寻找其他的东西。 - Thrash Bean
1
看起来你有一个问题命名的范围,POI很难更新移位。你能否发布一下工作表中的任何非标准命名范围? - Gagravarr
显示剩余4条评论
1个回答

0
尝试一下这个:sheet.shiftRows(currentRow, sheet.getLastRowNum()+1, amount, true,true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接