You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@poi.apache.org by Hepzibah Rajulah <he...@googlemail.com> on 2010/06/07 20:57:32 UTC

Named Range

I have a template with named ranges to get the graph

With POI 3.0.2
I had defined done the following to change the reference to the named range

         int namedCellIdx = wb.getNameIndex("Month");
        HSSFName namedCell = wb.getNameAt(namedCellIdx);
        String reference = namedCell.getSheetName() + "!" + "$C$" +
dataRowBegin + ":" + "$C$" + dataRows;
        namedCell.setReference(reference);
which changed the named range and worked fine ...

When i switched to POI 3.6  threw the following exception

org.apache.poi.ss.formula.FormulaParseException: Specified named range
'Reifegrad' does not exist in the current workbook.
    at
org.apache.poi.ss.formula.FormulaParser.parseNonRange(FormulaParser.java:562)
    at
org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:423)
    at
org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:266)
    at
org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1112)
    at
org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1072)
    at
org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1059)
    at org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1410)
    at
org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1510)
    at
org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1494)
    at
org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1451)
    at
org.apache.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1431)
    at
org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:1552)
    at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:174)
    at
org.apache.poi.hssf.model.HSSFFormulaParser.parse(HSSFFormulaParser.java:72)
    at
org.apache.poi.hssf.usermodel.HSSFName.setRefersToFormula(HSSFName.java:164)
    at
org.apache.poi.hssf.usermodel.HSSFName.setReference(HSSFName.java:160)


and then changed the  code

       int namedCellIdx = wb.getNameIndex("BTTPMonat");
       Name namedCell = wb.getNameAt(namedCellIdx);
        String reference = namedCell.getSheetName() + "!" + "$C$" +
dataRowBegin + ":" + "$C$" + dataRows;
        namedCell.setRefersToFormula(reference);

Still  throws the exception as stated below



org.apache.poi.ss.formula.FormulaParseException: Specified named range
'Reifegrad' does not exist in the current workbook.
    at
org.apache.poi.ss.formula.FormulaParser.parseNonRange(FormulaParser.java:562)
    at
org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:423)
    at
org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:266)
    at
org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1112)
    at
org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1072)
    at
org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1059)
    at org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1410)
    at
org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1510)
    at
org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1494)
    at
org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1451)
    at
org.apache.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1431)
    at
org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:1552)
    at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:174)
    at
org.apache.poi.hssf.model.HSSFFormulaParser.parse(HSSFFormulaParser.java:72)
    at
org.apache.poi.hssf.usermodel.HSSFName.setRefersToFormula(HSSFName.java:164)

Where do i go wrong ...Help please

Thanks ,