Package org.apache.poi.hssf.record.formula

Examples of org.apache.poi.hssf.record.formula.Ptg


            NameRecord origNameRecord = workbook.getNameRecord(filterDbNameIndex);
            // copy original formula but adjust 3D refs to the new external sheet index
            int newExtSheetIx = workbook.checkExternSheet(newSheetIndex);
            Ptg[] ptgs = origNameRecord.getNameDefinition();
            for (int i=0; i< ptgs.length; i++) {
                Ptg ptg = ptgs[i];
                ptg = ptg.copy();
               
                if (ptg instanceof Area3DPtg) {
                    Area3DPtg a3p = (Area3DPtg) ptg;
                    a3p.setExternSheetIndex(newExtSheetIx);
                } else if (ptg instanceof Ref3DPtg) {
View Full Code Here


        Stack stack = new Stack();
        for (int i = 0, iSize = ptgs.length; i < iSize; i++) {

            // since we don't know how to handle these yet :(
            Ptg ptg = ptgs[i];
            if (ptg instanceof ControlPtg) { continue; }
            if (ptg instanceof MemErrPtg) { continue; }
            if (ptg instanceof MissingArgPtg) { continue; }
            if (ptg instanceof NamePtg) {
              // named ranges, macro functions
View Full Code Here

        List list   = getParsedExpression();
        int  retval = 0;

        for (int k = 0; k < list.size(); k++)
        {
            Ptg ptg = ( Ptg ) list.get(k);

            retval += ptg.getSize();
        }
        return retval;
    }
View Full Code Here

      rec.field_8_parsed_expr = new Stack();
      int size = 0;
      if (field_8_parsed_expr != null)
        size = field_8_parsed_expr.size();
      for (int i=0; i< size; i++) {
        Ptg ptg = (Ptg)((Ptg)field_8_parsed_expr.get(i)).clone();       
        rec.field_8_parsed_expr.add(i, ptg);
      }
      rec.value_data = value_data;
      rec.all_data = all_data;
      return rec;
View Full Code Here

      int result = 0;
        List list   = field_13_name_definition;
       
        for (int k = 0; k < list.size(); k++)
        {
          Ptg ptg = ( Ptg ) list.get(k);
         
          result += ptg.getSize();
        }
        return result;   
    }
View Full Code Here

    /** gets the extern sheet number
     * @return extern sheet index
     */
    public short getExternSheetNumber(){
        if (field_13_name_definition == null || field_13_name_definition.isEmpty()) return 0;
        Ptg ptg = (Ptg) field_13_name_definition.peek();
        short result = 0;

        if (ptg.getClass() == Area3DPtg.class){
            result = ((Area3DPtg) ptg).getExternSheetIndex();

        } else if (ptg.getClass() == Ref3DPtg.class){
            result = ((Ref3DPtg) ptg).getExternSheetIndex();
        }

        return result;
    }
View Full Code Here

    /** sets the extern sheet number
     * @param externSheetNumber extern sheet number
     */
    public void setExternSheetNumber(short externSheetNumber){
        Ptg ptg;

        if (field_13_name_definition == null || field_13_name_definition.isEmpty()){
            field_13_name_definition = new Stack();
            ptg = createNewPtg();
        } else {
            ptg = (Ptg) field_13_name_definition.peek();
        }

        if (ptg.getClass() == Area3DPtg.class){
            ((Area3DPtg) ptg).setExternSheetIndex(externSheetNumber);

        } else if (ptg.getClass() == Ref3DPtg.class){
            ((Ref3DPtg) ptg).setExternSheetIndex(externSheetNumber);
        }

    }
View Full Code Here

        }

    }

    private Ptg createNewPtg(){
        Ptg ptg = new Area3DPtg();
        field_13_name_definition.push(ptg);

        return ptg;
    }
View Full Code Here

    /** gets the reference , the area only (range)
     * @return area reference
     */
    public String getAreaReference(HSSFWorkbook book){
        if (field_13_name_definition == null || field_13_name_definition.isEmpty()) return "Error";
        Ptg ptg = (Ptg) field_13_name_definition.peek();
        String result = "";

        // If it's a union, descend in and process
        if (ptg.getClass() == UnionPtg.class) {
            Iterator it =field_13_name_definition.iterator();
            while( it.hasNext() ) {
                Ptg p = (Ptg)it.next();

                String thisRes = getAreaRefString(p, book);
                if(thisRes.length() > 0) {
                    // Add a comma to the end if needed
                    if(result.length() > 0 && !result.endsWith(",")) {
View Full Code Here

     * @param ref area reference
     */
    public void setAreaReference(String ref){
        //Trying to find if what ptg do we need
        RangeAddress ra = new RangeAddress(ref);
        Ptg oldPtg;
        Ptg ptg;

        if (field_13_name_definition==null ||field_13_name_definition.isEmpty()){
            field_13_name_definition = new Stack();
            oldPtg = createNewPtg();
        } else {
            //Trying to find extern sheet index
            oldPtg = (Ptg) field_13_name_definition.pop();
        }

        short externSheetIndex = 0;

        if (oldPtg.getClass() == Area3DPtg.class){
            externSheetIndex =  ((Area3DPtg) oldPtg).getExternSheetIndex();

        } else if (oldPtg.getClass() == Ref3DPtg.class){
            externSheetIndex =  ((Ref3DPtg) oldPtg).getExternSheetIndex();
        }

        if (ra.hasRange()) {
          // Is it contiguous or not?
          AreaReference[] refs =
            AreaReference.generateContiguous(ref);
            this.setDefinitionTextLength((short)0);

            // Add the area reference(s)
          for(int i=0; i<refs.length; i++) {
              ptg = new Area3DPtg();
              ((Area3DPtg) ptg).setExternSheetIndex(externSheetIndex);
              ((Area3DPtg) ptg).setArea(refs[i].formatAsString());
              field_13_name_definition.push(ptg);
              this.setDefinitionTextLength( (short)(getDefinitionLength() + ptg.getSize()) );
          }
          // And then a union if we had more than one area
          if(refs.length > 1) {
            ptg = new UnionPtg();
                field_13_name_definition.push(ptg);
              this.setDefinitionTextLength( (short)(getDefinitionLength() + ptg.getSize()) );
          }
        } else {
            ptg = new Ref3DPtg();
            ((Ref3DPtg) ptg).setExternSheetIndex(externSheetIndex);
            ((Ref3DPtg) ptg).setArea(ref);
            field_13_name_definition.push(ptg);
            this.setDefinitionTextLength((short)ptg.getSize());
        }
    }
View Full Code Here

TOP

Related Classes of org.apache.poi.hssf.record.formula.Ptg

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.