Package org.apache.poi.ss.formula.ptg

Examples of org.apache.poi.ss.formula.ptg.AreaPtg


  public void testColumnOperand() {

    short firstRow = (short)8;
    short lastRow = (short)12;
    short colNum = (short)5;
    AreaPtg areaPtg = new AreaPtg(firstRow, lastRow, colNum, colNum, false, false, false, false);
    ValueEval[] values = {
        new NumberEval(27),
        new NumberEval(29),
        new NumberEval(35)// value in row 10
        new NumberEval(37),
View Full Code Here


    if (ptg instanceof RefPtg) {
      RefPtg rptg = (RefPtg) ptg;
      return ec.getRefEval(rptg.getRow(), rptg.getColumn());
    }
    if (ptg instanceof AreaPtg) {
      AreaPtg aptg = (AreaPtg) ptg;
      return ec.getAreaEval(aptg.getFirstRow(), aptg.getFirstColumn(), aptg.getLastRow(), aptg.getLastColumn());
    }

    if (ptg instanceof UnknownPtg) {
      // POI uses UnknownPtg when the encoded Ptg array seems to be corrupted.
      // This seems to occur in very rare cases (e.g. unused name formulas in bug 44774, attachment 21790)
View Full Code Here

    if (ptg instanceof RefPtg) {
      RefPtg rptg = (RefPtg) ptg;
      return ec.getRefEval(rptg.getRow(), rptg.getColumn());
    }
    if (ptg instanceof AreaPtg) {
      AreaPtg aptg = (AreaPtg) ptg;
      return ec.getAreaEval(aptg.getFirstRow(), aptg.getFirstColumn(), aptg.getLastRow(), aptg.getLastColumn());
    }

    if (ptg instanceof UnknownPtg) {
      // POI uses UnknownPtg when the encoded Ptg array seems to be corrupted.
      // This seems to occur in very rare cases (e.g. unused name formulas in bug 44774, attachment 21790)
View Full Code Here

  private static Ptg readRefPtg(byte[] formulaRawBytes) {
    LittleEndianInput in = new LittleEndianInputStream(new ByteArrayInputStream(formulaRawBytes));
    byte ptgSid = in.readByte();
    switch(ptgSid) {
      case AreaPtg.sid:   return new AreaPtg(in);
      case Area3DPtg.sid: return new Area3DPtg(in);
      case RefPtg.sid:  return new RefPtg(in);
      case Ref3DPtg.sid:  return new Ref3DPtg(in);
    }
    return null;
View Full Code Here

   * moved
   */
  public void testShiftAreasSourceRows() {

    // all these operations are on an area ref spanning rows 10 to 20
    AreaPtg aptg  = createAreaPtg(10, 20);

    confirmAreaShift(aptg,  9, 21, 20, 30, 40);
    confirmAreaShift(aptg, 10, 21, 20, 30, 40);
    confirmAreaShift(aptg,  9, 20, 20, 30, 40);

View Full Code Here

   * Tests what happens to an area ref when some outside rows are moved to overlap
   * that area ref
   */
  public void testShiftAreasDestRows() {
    // all these operations are on an area ref spanning rows 20 to 25
    AreaPtg aptg  = createAreaPtg(20, 25);

    // no change because no overlap:
    confirmAreaShift(aptg,  5, 109, 20, 25);
    confirmAreaShift(aptg,  5, 10, 21, 20, 25);

View Full Code Here

      int expectedAreaFirstRow, int expectedAreaLastRow) {

    FormulaShifter fs = FormulaShifter.createForRowShift(0, firstRowMoved, lastRowMoved, numberRowsMoved);
    boolean expectedChanged = aptg.getFirstRow() != expectedAreaFirstRow || aptg.getLastRow() != expectedAreaLastRow;

    AreaPtg copyPtg = (AreaPtg) aptg.copy(); // clone so we can re-use aptg in calling method
    Ptg[] ptgs = { copyPtg, };
    boolean actualChanged = fs.adjustFormula(ptgs, 0);
    if (expectedAreaFirstRow < 0) {
      assertEquals(AreaErrPtg.class, ptgs[0].getClass());
      return;
    }
    assertEquals(expectedChanged, actualChanged);
    assertEquals(copyPtg, ptgs[0])// expected to change in place (although this is not a strict requirement)
    assertEquals(expectedAreaFirstRow, copyPtg.getFirstRow());
    assertEquals(expectedAreaLastRow, copyPtg.getLastRow());

  }
View Full Code Here

    assertEquals(expectedAreaFirstRow, copyPtg.getFirstRow());
    assertEquals(expectedAreaLastRow, copyPtg.getLastRow());

  }
  private static AreaPtg createAreaPtg(int initialAreaFirstRow, int initialAreaLastRow) {
    return new AreaPtg(initialAreaFirstRow, initialAreaLastRow, 2, 5, false, false, false, false);
  }
View Full Code Here

        assertTrue(sr instanceof LbsDataSubRecord);
        LbsDataSubRecord lbs = (LbsDataSubRecord)sr;
        assertEquals(4, lbs.getNumberOfItems());

        assertTrue(lbs.getFormula() instanceof AreaPtg);
        AreaPtg ptg = (AreaPtg)lbs.getFormula();
        CellRangeAddress range = new CellRangeAddress(
                ptg.getFirstRow(), ptg.getLastRow(), ptg.getFirstColumn(), ptg.getLastColumn());
        assertEquals("H10:H13", range.formatAsString());

        // check that it re-serializes to the same data
        byte[] ser = record.serialize();
        TestcaseRecordInputStream.confirmRecordEncoding(ObjRecord.sid, data, ser);
View Full Code Here

    assertEquals(AreaPtg.class, ops[0].getClass());
    assertEquals(FuncVarPtg.class, ops[1].getClass());

    // Actually stored as C1 to C65536
    // (last row is -1 === 65535)
    AreaPtg ptg = (AreaPtg) ops[0];
    assertEquals(2, ptg.getFirstColumn());
    assertEquals(2, ptg.getLastColumn());
    assertEquals(0, ptg.getFirstRow());
    assertEquals(65535, ptg.getLastRow());
    assertEquals("C:C", ptg.toFormulaString());

    // Will show as C:C, but won't know how many
    // rows it covers as we don't have the sheet
    // to hand when turning the Ptgs into a string
    assertEquals("SUM(C:C)", cellSUM.getCellFormula());
View Full Code Here

TOP

Related Classes of org.apache.poi.ss.formula.ptg.AreaPtg

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.