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());
}
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());
}
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());
}
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();
}
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;
}
Aggregations