使用Apache POI处理Excel文件中的外部引用

时间:2014-10-15 15:26:01

标签: java excel apache-poi

我有一堆Excel文件,使用如下公式引用服务器上的其他文件:

'http://192.168.1.2/[blank.xls]Sheet1'!$A$1

公式中的Ips是硬编码的。我想将它们更改为引用另一个主机和路径,例如:

'http://192.168.1.3/reports/[report.xls]Sheet1'!$A$1

尝试像这样使用Apache POI:

for (int s = 0; s < workbook.getNumberOfSheets(); s++) {
    HSSFSheet sheet = workbook.getSheetAt(s);
    for (Row row : sheet) {
        for (Cell cell : row) {
            if (cell.getCellType() == Cell.CELL_TYPE_FORMULA) {
                cell.setCellFormula("'http://192.168.1.3/reports/[report.xls]Sheet1'!$A$1");
            }
        }
    }
}

但是当我尝试获取值(使用cell.getCellFormula())时,我得到了:

#REF!$A$1

当我用MS Excel打开文件时,我得到了同样的效果。

如何正常工作?

P.S。使用Apache POI 3.8。

0 个答案:

没有答案