use of org.apache.poi.ss.usermodel.FormulaEvaluator in project poi by apache.
the class TestExcelAntWorkbookUtil method testGetEvaluatorXLSXWithFunction.
public void testGetEvaluatorXLSXWithFunction() {
fixture = new ExcelAntWorkbookUtilTestHelper(BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx");
fixture.addFunction("h2_ZFactor", new CalculateMortgageFunction());
FormulaEvaluator evaluator = fixture.getEvaluator(BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx");
assertNotNull(evaluator);
}
use of org.apache.poi.ss.usermodel.FormulaEvaluator in project poi by apache.
the class TestExcelAntWorkbookUtil method testGetEvaluator.
public void testGetEvaluator() {
fixture = new ExcelAntWorkbookUtilTestHelper(mortgageCalculatorFileName);
FormulaEvaluator evaluator = fixture.getEvaluator(mortgageCalculatorFileName);
assertNotNull(evaluator);
}
use of org.apache.poi.ss.usermodel.FormulaEvaluator in project poi by apache.
the class TestExcelAntWorkbookUtil method testGetEvaluatorWithUDF.
public void testGetEvaluatorWithUDF() {
fixture = new ExcelAntWorkbookUtilTestHelper(mortgageCalculatorFileName);
fixture.addFunction("h2_ZFactor", new CalculateMortgageFunction());
FormulaEvaluator evaluator = fixture.getEvaluator(mortgageCalculatorFileName);
assertNotNull(evaluator);
}
use of org.apache.poi.ss.usermodel.FormulaEvaluator in project poi by apache.
the class TestExcelAntWorkbookUtil method testGetEvaluatorXLSX.
public void testGetEvaluatorXLSX() {
fixture = new ExcelAntWorkbookUtilTestHelper(BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx");
FormulaEvaluator evaluator = fixture.getEvaluator(BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx");
assertNotNull(evaluator);
}
use of org.apache.poi.ss.usermodel.FormulaEvaluator in project poi by apache.
the class TestStructuredReferences method testTableFormulas.
@Test
public void testTableFormulas() throws Exception {
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("StructuredReferences.xlsx");
try {
final FormulaEvaluator eval = new XSSFFormulaEvaluator(wb);
final XSSFSheet tableSheet = wb.getSheet("Table");
final XSSFSheet formulaSheet = wb.getSheet("Formulas");
confirm(eval, tableSheet.getRow(5).getCell(0), 49);
confirm(eval, formulaSheet.getRow(0).getCell(0), 209);
confirm(eval, formulaSheet.getRow(1).getCell(0), "one");
// test changing a table value, to see if the caches are properly cleared
// Issue 59814
// this test passes before the fix for 59814
tableSheet.getRow(1).getCell(1).setCellValue("ONEA");
confirm(eval, formulaSheet.getRow(1).getCell(0), "ONEA");
// test adding a row to a table, issue 59814
Row newRow = tableSheet.getRow(7);
if (newRow == null)
newRow = tableSheet.createRow(7);
newRow.createCell(0, CellType.FORMULA).setCellFormula("\\_Prime.1[[#This Row],[@Number]]*\\_Prime.1[[#This Row],[@Number]]");
newRow.createCell(1, CellType.STRING).setCellValue("thirteen");
newRow.createCell(2, CellType.NUMERIC).setCellValue(13);
// update Table
final XSSFTable table = wb.getTable("\\_Prime.1");
final AreaReference newArea = new AreaReference(table.getStartCellReference(), new CellReference(table.getEndRowIndex() + 1, table.getEndColIndex()));
String newAreaStr = newArea.formatAsString();
table.getCTTable().setRef(newAreaStr);
table.getCTTable().getAutoFilter().setRef(newAreaStr);
table.updateHeaders();
table.updateReferences();
// these fail before the fix for 59814
confirm(eval, tableSheet.getRow(7).getCell(0), 13 * 13);
confirm(eval, formulaSheet.getRow(0).getCell(0), 209 + 13 * 13);
} finally {
wb.close();
}
}
Aggregations