如何使用POI SS处理HYPERLINKfunction?

我正在尝试使用POI SS将Excel电子表格转换为CSV。 不幸的是,我似乎无法正确处理HYPERLINKfunction:

if (cell.getCellType() == Cell.CELL_TYPE_FORMULA) { System.out.println("formula cell: " + cell.toString()); switch (cell.getCachedFormulaResultType()) { case Cell.CELL_TYPE_BOOLEAN: return Boolean.toString(cell.getBooleanCellValue()); case Cell.CELL_TYPE_NUMERIC: return NUMERIC_FORMAT.format(cell.getNumericCellValue()); case Cell.CELL_TYPE_BLANK: return ""; default: // Special case handling for HYPERLINK cells if (cell.getHyperlink() != null) { System.out.println("found hyperlink: " + cell.getHyperlink().getAddress()); return cell.getHyperlink().getAddress(); } System.out.println("something else: " + cell.toString()); return cell.toString(); } } 

不幸的是,即使它将这个单元格解释为FORMULA单元格,cell.getHyperlink()返回null,所以cell.toString()只返回完整的公式,如:

= HYPERLINK( “HTTP:…”, “…”)

我如何得到这个正确的工作?

公式= HYPERLINK(“http:// something /”,“label”)与Excel中的正常超链接不同。

如果您调用get.getHyperlink(),那么它将返回单元格的超链接(如果设置)。 这就是你从插入 – >超链接中获得的超链接

对于公式的情况下,只需要返回公式string,如果它是一个超链接公式抓住它的兴趣位。

(即使它们在Excel中可能看起来非常相似,但是它们的文件格式却非常不同,这就是你所看到的)