Uploaded image for project: 'ZK Spreadsheet'
  1. ZK Spreadsheet
  2. ZSS-645

Fail to export to XLS format when the book has a named range referring to an external book

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: 3.5.0 RC
    • Fix Version/s: 3.5.0
    • Component/s: ZSS Component
    • Labels:
      None

      Description

      Reproducing Steps:

      1. run the test case zss.test \ org.zkoss.zss.model.importer.ExcelImporterTest

      failed on [Export XLS] D:\git\zkspreadsheet\zss.test\src\test\java\org\zkoss\zss\api\impl\book\280-reapply.xlsx
      java.lang.RuntimeException : No external workbook with name '1'
      at org.zkoss.poi.hssf.model.LinkTable.getExternalSheetIndex( LinkTable.java:393)
      at org.zkoss.poi.hssf.model.InternalWorkbook.getExternalSheetIndex( InternalWorkbook.java:1897)
      at org.zkoss.poi.hssf.usermodel.HSSFEvaluationWorkbook.getExternalSheetIndex( HSSFEvaluationWorkbook.java:72)
      at org.zkoss.poi.ss.formula.FormulaParser.createAreaRefParseNode( FormulaParser.java:655)
      at org.zkoss.poi.ss.formula.FormulaParser.parseRangeable( FormulaParser.java:529)
      at org.zkoss.poi.ss.formula.FormulaParser.parseRangeExpression( FormulaParser.java:285)
      at org.zkoss.poi.ss.formula.FormulaParser.parseSimpleFactor( FormulaParser.java:1163)
      at org.zkoss.poi.ss.formula.FormulaParser.percentFactor( FormulaParser.java:1123)
      at org.zkoss.poi.ss.formula.FormulaParser.powerFactor( FormulaParser.java:1110)
      at org.zkoss.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1470 )
      at org.zkoss.poi.ss.formula.FormulaParser.additiveExpression( FormulaParser.java:1570)
      at org.zkoss.poi.ss.formula.FormulaParser.concatExpression( FormulaParser.java:1554)
      at org.zkoss.poi.ss.formula.FormulaParser.comparisonExpression( FormulaParser.java:1511)
      at org.zkoss.poi.ss.formula.FormulaParser.unionExpression( FormulaParser.java:1491)
      at org.zkoss.poi.ss.formula.FormulaParser.parse(FormulaParser.java:1612 )
      at org.zkoss.poi.ss.formula.FormulaParser.parse(FormulaParser.java:193 )
      at org.zkoss.poi.hssf.model.HSSFFormulaParser.parse( HSSFFormulaParser.java:72)
      at org.zkoss.poi.hssf.usermodel.HSSFName.setRefersToFormula( HSSFName.java:187)
      at org.zkoss.zss.range.impl.imexp.AbstractExcelExporter.exportNamedRange( AbstractExcelExporter.java:115)
      at org.zkoss.zss.range.impl.imexp.AbstractExcelExporter.export( AbstractExcelExporter.java:86)
      at org.zkoss.zss.range.impl.imexp.AbstractExporter.export( AbstractExporter.java:37)
      at org.zkoss.zss.model.importer.ExcelImporterTest.importExport( ExcelImporterTest.java:66)
      at sun.reflect.NativeMethodAccessorImpl.invoke0( Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 )
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25 )
      at java.lang.reflect.Method.invoke( Method.java:597 )
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall( FrameworkMethod.java:47)
      at org.junit.internal.runners.model.ReflectiveCallable.run( ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively( FrameworkMethod.java:44)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate( InvokeMethod.java:17)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271 )
      at org.junit.runners.BlockJUnit4ClassRunner.runChild( BlockJUnit4ClassRunner.java:70)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild( BlockJUnit4ClassRunner.java:50)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238 )
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63 )
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236 )
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53 )
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229 )
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309 )
      at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run( JUnit4TestReference.java:50)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run( TestExecution.java:38)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests( RemoteTestRunner.java:467)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests( RemoteTestRunner.java:683)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run( RemoteTestRunner.java:390)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main( RemoteTestRunner.java:197)

        Activity

        Hide
        hawk hawk added a comment -

        Root Cause:

        The named range's formula is valid but points to an external book. In XLS, there must be an entry in link table for each external book.

        Solution:

        Do not export the named range in this case.

        Show
        hawk hawk added a comment - Root Cause: The named range's formula is valid but points to an external book. In XLS, there must be an entry in link table for each external book. Solution: Do not export the named range in this case.

          People

          • Assignee:
            hawk hawk
            Reporter:
            hawk hawk
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: