Example usage for org.apache.poi.xssf.model ExternalLinksTable getLinkedFileName

List of usage examples for org.apache.poi.xssf.model ExternalLinksTable getLinkedFileName

Introduction

In this page you can find the example usage for org.apache.poi.xssf.model ExternalLinksTable getLinkedFileName.

Prototype

public String getLinkedFileName() 

Source Link

Document

Returns the last recorded name of the file that this is linked to

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 + "'");
                    }/*from   ww w .j  a  v a  2s.c om*/
                } else {
                    logger.warn("Unable to resolve external workbook '" + file + "'. Main workbook: '"
                            + mainWorkbookFile + "'");
                }
            }
        }
    }

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