Search in sources :

Example 11 with Name

use of org.apache.poi.ss.usermodel.Name in project poi by apache.

the class TestExternalLinksTable method basicReadWriteRead.

@Test
public void basicReadWriteRead() {
    XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("ref-56737.xlsx");
    Name name = wb.getExternalLinksTable().get(0).getDefinedNames().get(1);
    name.setNameName("Testing");
    name.setRefersToFormula("$A$1");
    wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
    assertEquals(1, wb.getExternalLinksTable().size());
    ExternalLinksTable links = wb.getExternalLinksTable().get(0);
    name = links.getDefinedNames().get(0);
    assertEquals("NR_Global_B2", name.getNameName());
    assertEquals(-1, name.getSheetIndex());
    assertEquals(null, name.getSheetName());
    assertEquals("'Defines'!$B$2", name.getRefersToFormula());
    name = links.getDefinedNames().get(1);
    assertEquals("Testing", name.getNameName());
    assertEquals(1, name.getSheetIndex());
    assertEquals("Defines", name.getSheetName());
    assertEquals("$A$1", name.getRefersToFormula());
}
Also used : XSSFWorkbook(org.apache.poi.xssf.usermodel.XSSFWorkbook) Name(org.apache.poi.ss.usermodel.Name) Test(org.junit.Test)

Example 12 with Name

use of org.apache.poi.ss.usermodel.Name in project poi by apache.

the class TestExternalLinksTable method readWithReferencesToTwoExternalBooks.

@Test
public void readWithReferencesToTwoExternalBooks() {
    XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("ref2-56737.xlsx");
    assertNotNull(wb.getExternalLinksTable());
    Name name = null;
    assertEquals(2, wb.getExternalLinksTable().size());
    // Check the first one, links to 56737.xlsx
    ExternalLinksTable links = wb.getExternalLinksTable().get(0);
    assertEquals("56737.xlsx", links.getLinkedFileName());
    assertEquals(3, links.getSheetNames().size());
    assertEquals(2, links.getDefinedNames().size());
    assertEquals("Uses", links.getSheetNames().get(0));
    assertEquals("Defines", links.getSheetNames().get(1));
    assertEquals("56737", links.getSheetNames().get(2));
    name = links.getDefinedNames().get(0);
    assertEquals("NR_Global_B2", name.getNameName());
    assertEquals(-1, name.getSheetIndex());
    assertEquals(null, name.getSheetName());
    assertEquals("'Defines'!$B$2", name.getRefersToFormula());
    name = links.getDefinedNames().get(1);
    assertEquals("NR_To_A1", name.getNameName());
    assertEquals(1, name.getSheetIndex());
    assertEquals("Defines", name.getSheetName());
    assertEquals("'Defines'!$A$1", name.getRefersToFormula());
    // Check the second one, links to 56737.xls, slightly differently
    links = wb.getExternalLinksTable().get(1);
    assertEquals("56737.xls", links.getLinkedFileName());
    assertEquals(2, links.getSheetNames().size());
    assertEquals(2, links.getDefinedNames().size());
    assertEquals("Uses", links.getSheetNames().get(0));
    assertEquals("Defines", links.getSheetNames().get(1));
    name = links.getDefinedNames().get(0);
    assertEquals("NR_Global_B2", name.getNameName());
    assertEquals(-1, name.getSheetIndex());
    assertEquals(null, name.getSheetName());
    assertEquals("'Defines'!$B$2", name.getRefersToFormula());
    name = links.getDefinedNames().get(1);
    assertEquals("NR_To_A1", name.getNameName());
    assertEquals(1, name.getSheetIndex());
    assertEquals("Defines", name.getSheetName());
    assertEquals("'Defines'!$A$1", name.getRefersToFormula());
}
Also used : XSSFWorkbook(org.apache.poi.xssf.usermodel.XSSFWorkbook) Name(org.apache.poi.ss.usermodel.Name) Test(org.junit.Test)

Example 13 with Name

use of org.apache.poi.ss.usermodel.Name in project poi by apache.

the class TestExternalLinksTable method basicRead.

@Test
public void basicRead() {
    XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("ref-56737.xlsx");
    assertNotNull(wb.getExternalLinksTable());
    Name name = null;
    assertEquals(1, wb.getExternalLinksTable().size());
    ExternalLinksTable links = wb.getExternalLinksTable().get(0);
    assertEquals(3, links.getSheetNames().size());
    assertEquals(2, links.getDefinedNames().size());
    assertEquals("Uses", links.getSheetNames().get(0));
    assertEquals("Defines", links.getSheetNames().get(1));
    assertEquals("56737", links.getSheetNames().get(2));
    name = links.getDefinedNames().get(0);
    assertEquals("NR_Global_B2", name.getNameName());
    assertEquals(-1, name.getSheetIndex());
    assertEquals(null, name.getSheetName());
    assertEquals("'Defines'!$B$2", name.getRefersToFormula());
    name = links.getDefinedNames().get(1);
    assertEquals("NR_To_A1", name.getNameName());
    assertEquals(1, name.getSheetIndex());
    assertEquals("Defines", name.getSheetName());
    assertEquals("'Defines'!$A$1", name.getRefersToFormula());
    assertEquals("56737.xlsx", links.getLinkedFileName());
}
Also used : XSSFWorkbook(org.apache.poi.xssf.usermodel.XSSFWorkbook) Name(org.apache.poi.ss.usermodel.Name) Test(org.junit.Test)

Example 14 with Name

use of org.apache.poi.ss.usermodel.Name in project poi by apache.

the class TestWorkbookEvaluator method testNamesInFormulas.

/**
     * formulas with defined names.
     */
@Test
public void testNamesInFormulas() throws IOException {
    Workbook wb = new HSSFWorkbook();
    Sheet sheet = wb.createSheet("Sheet1");
    Name name1 = wb.createName();
    name1.setNameName("aConstant");
    name1.setRefersToFormula("3.14");
    Name name2 = wb.createName();
    name2.setNameName("aFormula");
    name2.setRefersToFormula("SUM(Sheet1!$A$1:$A$3)");
    Name name3 = wb.createName();
    name3.setNameName("aSet");
    name3.setRefersToFormula("Sheet1!$A$2:$A$4");
    Row row0 = sheet.createRow(0);
    Row row1 = sheet.createRow(1);
    Row row2 = sheet.createRow(2);
    Row row3 = sheet.createRow(3);
    row0.createCell(0).setCellValue(2);
    row1.createCell(0).setCellValue(5);
    row2.createCell(0).setCellValue(3);
    row3.createCell(0).setCellValue(7);
    row0.createCell(2).setCellFormula("aConstant");
    row1.createCell(2).setCellFormula("aFormula");
    row2.createCell(2).setCellFormula("SUM(aSet)");
    row3.createCell(2).setCellFormula("aConstant+aFormula+SUM(aSet)");
    FormulaEvaluator fe = wb.getCreationHelper().createFormulaEvaluator();
    assertEquals(3.14, fe.evaluate(row0.getCell(2)).getNumberValue(), EPSILON);
    assertEquals(10.0, fe.evaluate(row1.getCell(2)).getNumberValue(), EPSILON);
    assertEquals(15.0, fe.evaluate(row2.getCell(2)).getNumberValue(), EPSILON);
    assertEquals(28.14, fe.evaluate(row3.getCell(2)).getNumberValue(), EPSILON);
    wb.close();
}
Also used : HSSFRow(org.apache.poi.hssf.usermodel.HSSFRow) Row(org.apache.poi.ss.usermodel.Row) HSSFSheet(org.apache.poi.hssf.usermodel.HSSFSheet) Sheet(org.apache.poi.ss.usermodel.Sheet) Workbook(org.apache.poi.ss.usermodel.Workbook) HSSFWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook) HSSFWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook) Name(org.apache.poi.ss.usermodel.Name) HSSFFormulaEvaluator(org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator) FormulaEvaluator(org.apache.poi.ss.usermodel.FormulaEvaluator) Test(org.junit.Test)

Example 15 with Name

use of org.apache.poi.ss.usermodel.Name in project poi by apache.

the class ExternalLinksTable method getDefinedNames.

public List<Name> getDefinedNames() {
    CTExternalDefinedName[] extNames = link.getExternalBook().getDefinedNames().getDefinedNameArray();
    List<Name> names = new ArrayList<Name>(extNames.length);
    for (CTExternalDefinedName extName : extNames) {
        names.add(new ExternalName(extName));
    }
    return names;
}
Also used : ArrayList(java.util.ArrayList) CTExternalDefinedName(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTExternalDefinedName) CTExternalSheetName(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTExternalSheetName) CTExternalDefinedName(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTExternalDefinedName) Name(org.apache.poi.ss.usermodel.Name)

Aggregations

Name (org.apache.poi.ss.usermodel.Name)16 Test (org.junit.Test)11 Sheet (org.apache.poi.ss.usermodel.Sheet)5 Workbook (org.apache.poi.ss.usermodel.Workbook)5 Cell (org.apache.poi.ss.usermodel.Cell)4 InternalWorkbook (org.apache.poi.hssf.model.InternalWorkbook)3 XSSFWorkbook (org.apache.poi.xssf.usermodel.XSSFWorkbook)3 InternalSheet (org.apache.poi.hssf.model.InternalSheet)2 HSSFWorkbook (org.apache.poi.hssf.usermodel.HSSFWorkbook)2 AreaPtg (org.apache.poi.ss.formula.ptg.AreaPtg)2 Ptg (org.apache.poi.ss.formula.ptg.Ptg)2 Row (org.apache.poi.ss.usermodel.Row)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 ArrayList (java.util.ArrayList)1 QName (javax.xml.namespace.QName)1 UnicodeString (org.apache.poi.hssf.record.common.UnicodeString)1 HSSFFormulaEvaluator (org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator)1 HSSFName (org.apache.poi.hssf.usermodel.HSSFName)1 HSSFRow (org.apache.poi.hssf.usermodel.HSSFRow)1