Search in sources :

Example 6 with Area3DPtg

use of org.apache.poi.ss.formula.ptg.Area3DPtg in project poi by apache.

the class TestLinkedDataRecord method testStore.

public void testStore() {
    LinkedDataRecord record = new LinkedDataRecord();
    record.setLinkType(LinkedDataRecord.LINK_TYPE_VALUES);
    record.setReferenceType(LinkedDataRecord.REFERENCE_TYPE_WORKSHEET);
    record.setOptions((short) 0);
    record.setCustomNumberFormat(false);
    record.setIndexNumberFmtRecord((short) 0);
    Area3DPtg ptg = new Area3DPtg(0, 7936, 0, 0, false, false, false, false, 0);
    record.setFormulaOfLink(new Ptg[] { ptg });
    byte[] recordBytes = record.serialize();
    assertEquals(recordBytes.length - 4, data.length);
    for (int i = 0; i < data.length; i++) assertEquals("At offset " + i, data[i], recordBytes[i + 4]);
}
Also used : Area3DPtg(org.apache.poi.ss.formula.ptg.Area3DPtg)

Example 7 with Area3DPtg

use of org.apache.poi.ss.formula.ptg.Area3DPtg in project poi by apache.

the class TestAreaReference method testDiscontinousReference.

public void testDiscontinousReference() throws Exception {
    InputStream is = HSSFTestDataSamples.openSampleFileStream("44167.xls");
    HSSFWorkbook wb = new HSSFWorkbook(is);
    InternalWorkbook workbook = TestHSSFWorkbook.getInternalWorkbook(wb);
    HSSFEvaluationWorkbook eb = HSSFEvaluationWorkbook.create(wb);
    assertEquals(1, wb.getNumberOfNames());
    String sheetName = "Tabelle1";
    String rawRefA = "$C$10:$C$14";
    String rawRefB = "$C$16:$C$18";
    String refA = sheetName + "!" + rawRefA;
    String refB = sheetName + "!" + rawRefB;
    String ref = refA + "," + refB;
    // Check the low level record
    NameRecord nr = workbook.getNameRecord(0);
    assertNotNull(nr);
    assertEquals("test", nr.getNameText());
    Ptg[] def = nr.getNameDefinition();
    assertEquals(4, def.length);
    MemFuncPtg ptgA = (MemFuncPtg) def[0];
    Area3DPtg ptgB = (Area3DPtg) def[1];
    Area3DPtg ptgC = (Area3DPtg) def[2];
    UnionPtg ptgD = (UnionPtg) def[3];
    assertEquals("", ptgA.toFormulaString());
    assertEquals(refA, ptgB.toFormulaString(eb));
    assertEquals(refB, ptgC.toFormulaString(eb));
    assertEquals(",", ptgD.toFormulaString());
    assertEquals(ref, HSSFFormulaParser.toFormulaString(wb, nr.getNameDefinition()));
    // Check the high level definition
    int idx = wb.getNameIndex("test");
    assertEquals(0, idx);
    HSSFName aNamedCell = wb.getNameAt(idx);
    // Should have 2 references
    assertEquals(ref, aNamedCell.getRefersToFormula());
    // Check the parsing of the reference into cells
    assertFalse(AreaReference.isContiguous(aNamedCell.getRefersToFormula()));
    AreaReference[] arefs = AreaReference.generateContiguous(aNamedCell.getRefersToFormula());
    assertEquals(2, arefs.length);
    assertEquals(refA, arefs[0].formatAsString());
    assertEquals(refB, arefs[1].formatAsString());
    for (AreaReference ar : arefs) {
        confirmResolveCellRef(wb, ar.getFirstCell());
        confirmResolveCellRef(wb, ar.getLastCell());
    }
}
Also used : Ptg(org.apache.poi.ss.formula.ptg.Ptg) UnionPtg(org.apache.poi.ss.formula.ptg.UnionPtg) Area3DPtg(org.apache.poi.ss.formula.ptg.Area3DPtg) MemFuncPtg(org.apache.poi.ss.formula.ptg.MemFuncPtg) AreaReference(org.apache.poi.ss.util.AreaReference) MemFuncPtg(org.apache.poi.ss.formula.ptg.MemFuncPtg) InputStream(java.io.InputStream) TestHSSFWorkbook(org.apache.poi.hssf.usermodel.TestHSSFWorkbook) HSSFWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook) HSSFEvaluationWorkbook(org.apache.poi.hssf.usermodel.HSSFEvaluationWorkbook) InternalWorkbook(org.apache.poi.hssf.model.InternalWorkbook) HSSFName(org.apache.poi.hssf.usermodel.HSSFName) NameRecord(org.apache.poi.hssf.record.NameRecord) Area3DPtg(org.apache.poi.ss.formula.ptg.Area3DPtg) UnionPtg(org.apache.poi.ss.formula.ptg.UnionPtg)

Example 8 with Area3DPtg

use of org.apache.poi.ss.formula.ptg.Area3DPtg in project poi by apache.

the class HSSFChart method createValuesLinkedDataRecord.

private LinkedDataRecord createValuesLinkedDataRecord() {
    LinkedDataRecord r = new LinkedDataRecord();
    r.setLinkType(LinkedDataRecord.LINK_TYPE_VALUES);
    r.setReferenceType(LinkedDataRecord.REFERENCE_TYPE_WORKSHEET);
    r.setCustomNumberFormat(false);
    r.setIndexNumberFmtRecord((short) 0);
    Area3DPtg p = new Area3DPtg(0, 31, 0, 0, false, false, false, false, 0);
    r.setFormulaOfLink(new Ptg[] { p });
    return r;
}
Also used : Area3DPtg(org.apache.poi.ss.formula.ptg.Area3DPtg) LinkedDataRecord(org.apache.poi.hssf.record.chart.LinkedDataRecord)

Example 9 with Area3DPtg

use of org.apache.poi.ss.formula.ptg.Area3DPtg in project poi by apache.

the class HSSFChart method createCategoriesLinkedDataRecord.

private LinkedDataRecord createCategoriesLinkedDataRecord() {
    LinkedDataRecord r = new LinkedDataRecord();
    r.setLinkType(LinkedDataRecord.LINK_TYPE_CATEGORIES);
    r.setReferenceType(LinkedDataRecord.REFERENCE_TYPE_WORKSHEET);
    r.setCustomNumberFormat(false);
    r.setIndexNumberFmtRecord((short) 0);
    Area3DPtg p = new Area3DPtg(0, 31, 1, 1, false, false, false, false, 0);
    r.setFormulaOfLink(new Ptg[] { p });
    return r;
}
Also used : Area3DPtg(org.apache.poi.ss.formula.ptg.Area3DPtg) LinkedDataRecord(org.apache.poi.hssf.record.chart.LinkedDataRecord)

Example 10 with Area3DPtg

use of org.apache.poi.ss.formula.ptg.Area3DPtg in project poi by apache.

the class TestHSSFSheet method autoFilter.

@Test
public void autoFilter() throws IOException {
    HSSFWorkbook wb1 = new HSSFWorkbook();
    HSSFSheet sh = wb1.createSheet();
    InternalWorkbook iwb = wb1.getWorkbook();
    InternalSheet ish = sh.getSheet();
    assertNull(iwb.getSpecificBuiltinRecord(NameRecord.BUILTIN_FILTER_DB, 1));
    assertNull(ish.findFirstRecordBySid(AutoFilterInfoRecord.sid));
    CellRangeAddress range = CellRangeAddress.valueOf("A1:B10");
    sh.setAutoFilter(range);
    NameRecord name = iwb.getSpecificBuiltinRecord(NameRecord.BUILTIN_FILTER_DB, 1);
    assertNotNull(name);
    // The built-in name for auto-filter must consist of a single Area3d Ptg.
    Ptg[] ptg = name.getNameDefinition();
    assertEquals("The built-in name for auto-filter must consist of a single Area3d Ptg", 1, ptg.length);
    assertTrue("The built-in name for auto-filter must consist of a single Area3d Ptg", ptg[0] instanceof Area3DPtg);
    Area3DPtg aref = (Area3DPtg) ptg[0];
    assertEquals(range.getFirstColumn(), aref.getFirstColumn());
    assertEquals(range.getFirstRow(), aref.getFirstRow());
    assertEquals(range.getLastColumn(), aref.getLastColumn());
    assertEquals(range.getLastRow(), aref.getLastRow());
    // verify  AutoFilterInfoRecord
    AutoFilterInfoRecord afilter = (AutoFilterInfoRecord) ish.findFirstRecordBySid(AutoFilterInfoRecord.sid);
    assertNotNull(afilter);
    //filter covers two columns
    assertEquals(2, afilter.getNumEntries());
    HSSFPatriarch dr = sh.getDrawingPatriarch();
    assertNotNull(dr);
    HSSFSimpleShape comboBoxShape = (HSSFSimpleShape) dr.getChildren().get(0);
    assertEquals(comboBoxShape.getShapeType(), HSSFSimpleShape.OBJECT_TYPE_COMBO_BOX);
    // ObjRecord will appear after serializetion
    assertNull(ish.findFirstRecordBySid(ObjRecord.sid));
    HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1);
    wb1.close();
    sh = wb2.getSheetAt(0);
    ish = sh.getSheet();
    ObjRecord objRecord = (ObjRecord) ish.findFirstRecordBySid(ObjRecord.sid);
    List<SubRecord> subRecords = objRecord.getSubRecords();
    assertEquals(3, subRecords.size());
    assertTrue(subRecords.get(0) instanceof CommonObjectDataSubRecord);
    // must be present, see Bug 51481
    assertTrue(subRecords.get(1) instanceof FtCblsSubRecord);
    assertTrue(subRecords.get(2) instanceof LbsDataSubRecord);
    wb2.close();
}
Also used : AutoFilterInfoRecord(org.apache.poi.hssf.record.AutoFilterInfoRecord) Ptg(org.apache.poi.ss.formula.ptg.Ptg) Area3DPtg(org.apache.poi.ss.formula.ptg.Area3DPtg) CommonObjectDataSubRecord(org.apache.poi.hssf.record.CommonObjectDataSubRecord) LbsDataSubRecord(org.apache.poi.hssf.record.LbsDataSubRecord) InternalWorkbook(org.apache.poi.hssf.model.InternalWorkbook) InternalSheet(org.apache.poi.hssf.model.InternalSheet) NameRecord(org.apache.poi.hssf.record.NameRecord) Area3DPtg(org.apache.poi.ss.formula.ptg.Area3DPtg) FtCblsSubRecord(org.apache.poi.hssf.record.FtCblsSubRecord) LbsDataSubRecord(org.apache.poi.hssf.record.LbsDataSubRecord) SubRecord(org.apache.poi.hssf.record.SubRecord) CommonObjectDataSubRecord(org.apache.poi.hssf.record.CommonObjectDataSubRecord) FtCblsSubRecord(org.apache.poi.hssf.record.FtCblsSubRecord) ObjRecord(org.apache.poi.hssf.record.ObjRecord) CellRangeAddress(org.apache.poi.ss.util.CellRangeAddress) Test(org.junit.Test)

Aggregations

Area3DPtg (org.apache.poi.ss.formula.ptg.Area3DPtg)15 Ptg (org.apache.poi.ss.formula.ptg.Ptg)8 NameRecord (org.apache.poi.hssf.record.NameRecord)6 Ref3DPtg (org.apache.poi.ss.formula.ptg.Ref3DPtg)5 InternalWorkbook (org.apache.poi.hssf.model.InternalWorkbook)3 MemFuncPtg (org.apache.poi.ss.formula.ptg.MemFuncPtg)3 UnionPtg (org.apache.poi.ss.formula.ptg.UnionPtg)3 AutoFilterInfoRecord (org.apache.poi.hssf.record.AutoFilterInfoRecord)2 LinkedDataRecord (org.apache.poi.hssf.record.chart.LinkedDataRecord)2 NameXPtg (org.apache.poi.ss.formula.ptg.NameXPtg)2 CellRangeAddress (org.apache.poi.ss.util.CellRangeAddress)2 Test (org.junit.Test)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 InputStream (java.io.InputStream)1 ArrayList (java.util.ArrayList)1 InternalSheet (org.apache.poi.hssf.model.InternalSheet)1 CommonObjectDataSubRecord (org.apache.poi.hssf.record.CommonObjectDataSubRecord)1 FtCblsSubRecord (org.apache.poi.hssf.record.FtCblsSubRecord)1 LbsDataSubRecord (org.apache.poi.hssf.record.LbsDataSubRecord)1 ObjRecord (org.apache.poi.hssf.record.ObjRecord)1