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

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


       
        buffer.append("    .Parts (" + field_13_name_definition.size() +"):")
            .append("\n");
        Iterator it = field_13_name_definition.iterator();
        while(it.hasNext()) {
          Ptg ptg = (Ptg)it.next();
          buffer.append("       " + ptg.toString()).append("\n");
        }
       
        buffer.append("    .Menu text (Unicode string without length field)        = ").append( field_14_custom_menu_text )
            .append("\n");
        buffer.append("    .Description text (Unicode string without length field) = ").append( field_15_description_text )
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

       //read first formula data condition
       int token_pos = 0;
       while (token_pos < this.field_size_first_formula)
       {
           Ptg ptg = Ptg.createPtg(in);
           token_pos += ptg.getSize();
           field_rpn_token_1.push(ptg);
       }

       this.field_size_sec_formula = in.readShort();
       this.field_not_used_2 = in.readShort();

       //read sec formula data condition
       if (false) { // TODO - prior to bug 44710 this 'skip' was being executed. write a junit to confirm this fix
           try {
               in.skip(this.field_size_sec_formula);
           } catch(IOException e) {
               e.printStackTrace();
               throw new IllegalStateException(e.getMessage());
           }
       }
       token_pos = 0;
       while (token_pos < this.field_size_sec_formula)
       {
           Ptg ptg = Ptg.createPtg(in);
           token_pos += ptg.getSize();
           field_rpn_token_2.push(ptg);
       }

       //read cell range address list with all affected ranges
       this.field_regions = new HSSFCellRangeAddress(in);
View Full Code Here

        LittleEndian.putShort(data, offset+pos, this.field_not_used_1);
        pos += 2;

        for (int k = 0; k < this.field_rpn_token_1.size(); k++)
        {
            Ptg ptg = ( Ptg ) this.field_rpn_token_1.get(k);
            ptg.writeBytes(data, pos+offset);
            pos += ptg.getSize();
        }

        LittleEndian.putShort(data, offset+pos, this.field_size_sec_formula);
        pos += 2;
        LittleEndian.putShort(data, offset+pos, this.field_not_used_2);
        pos += 2;
        if ( this.field_size_sec_formula > 0 )
        {
          for (int k = 0; k < this.field_rpn_token_2.size(); k++)
          {
              Ptg ptg = ( Ptg ) this.field_rpn_token_2.get(k);
              ptg.writeBytes(data, pos+offset);
              pos += ptg.getSize();
          }
        }
        this.field_regions.serialize(pos+offset, data);
        return size;
    }
View Full Code Here

    }

    private static Ptg parseSingleToken(String formula, Class ptgClass) {
        Ptg[] ptgs = parseFormula(formula);
        assertEquals(1, ptgs.length);
        Ptg result = ptgs[0];
        assertEquals(ptgClass, result.getClass());
        return result;
    }
View Full Code Here

    HSSFWorkbook book = new HSSFWorkbook();
    return FormulaParser.parse(formula, book);
  }
  private static void confirmFunc(String formula, int expPtgArraySize, boolean isVarArgFunc, int funcIx) {
    Ptg[] ptgs = parse(formula);
    Ptg ptgF = ptgs[ptgs.length-1]// func is last RPN token in all these formulas
   
    // Check critical things in the Ptg array encoding.
    if(!(ptgF instanceof AbstractFunctionPtg)) {
        throw new RuntimeException("function token missing");
    }
    AbstractFunctionPtg func = (AbstractFunctionPtg) ptgF;
    if(func.getFunctionIndex() == 255) {
      throw new AssertionFailedError("Failed to recognise built-in function in formula '"
          + formula + "'");
    }
    assertEquals(expPtgArraySize, ptgs.length);
    assertEquals(funcIx, func.getFunctionIndex());
    Class expCls = isVarArgFunc ? FuncVarPtg.class : FuncPtg.class;
    assertEquals(expCls, ptgF.getClass());
   
    // check that parsed Ptg array converts back to formula text OK
    HSSFWorkbook book = new HSSFWorkbook();
    String reRenderedFormula = FormulaParser.toFormulaString(book, ptgs);
    assertEquals(formula, reRenderedFormula);
View Full Code Here

    public int getSize()
    {
        int size = 0;
        for ( Iterator iterator = formulaTokens.iterator(); iterator.hasNext(); )
        {
            Ptg token = (Ptg) iterator.next();
            size += token.getSize();
        }
        return size + 2;
    }
View Full Code Here

            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];

                if (ptg instanceof Area3DPtg) {
                    Area3DPtg a3p = (Area3DPtg) ((OperandPtg) ptg).copy();
                    a3p.setExternSheetIndex(newExtSheetIx);
                    ptgs[i] = a3p;
View Full Code Here

    public int getSize()
    {
        int size = 0;
        for ( Iterator iterator = formulaTokens.iterator(); iterator.hasNext(); )
        {
            Ptg token = (Ptg) iterator.next();
            size += token.getSize();
        }
        return size + 2;
    }
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.