Example usage for org.apache.poi.ss.usermodel FormulaEvaluator setupReferencedWorkbooks

List of usage examples for org.apache.poi.ss.usermodel FormulaEvaluator setupReferencedWorkbooks

Introduction

In this page you can find the example usage for org.apache.poi.ss.usermodel FormulaEvaluator setupReferencedWorkbooks.

Prototype

void setupReferencedWorkbooks(Map<String, FormulaEvaluator> workbooks);

Source Link

Document

Sets up the Formula Evaluator to be able to reference and resolve links to other workbooks, eg [Test.xls]Sheet1!A1.

Usage

From source file:step.datapool.excel.WorkbookSet.java

License:Open Source License

private void openReferencedWorkbooks(Integer maxWorkbookSize, Workbook workbook, FormulaEvaluator evaluator) {
    Map<String, FormulaEvaluator> workbooks = new HashMap<String, FormulaEvaluator>();

    if (workbook instanceof XSSFWorkbook) {
        if (((XSSFWorkbook) workbook).getExternalLinksTable() != null) {
            for (ExternalLinksTable sheet : ((XSSFWorkbook) workbook).getExternalLinksTable()) {
                String file = sheet.getLinkedFileName();
                File f = resolver.resolve(file);
                if (f != null) {
                    try {
                        WorkbookFile book = openWorkbook(f, maxWorkbookSize, false, false);
                        workbooks.put(file, book.getWorkbook().getCreationHelper().createFormulaEvaluator());
                    } catch (Exception e) {
                        logger.error("An error occured while opening referenced workbook '" + file
                                + "'. Main workbook: '" + mainWorkbookFile + "'");
                    }/*www . java  2 s. c o  m*/
                } else {
                    logger.warn("Unable to resolve external workbook '" + file + "'. Main workbook: '"
                            + mainWorkbookFile + "'");
                }
            }
        }
    }

    workbooks.put("this", evaluator);
    evaluator.setupReferencedWorkbooks(workbooks);
}