PHPExcel从超链接中获得友好名称?

我在Excel表格中有一个超链接,如下所示。

=HYPERLINK("mailto:abc@def.com","abc@def.com") 

我见过很多关于如何从超链接中提取URL的例子:

 $cell->getUrl(); 

但是,我似乎无法弄清楚的是如何获得友好名称或超链接的第二部分,在这种情况下将是:

abc@def.com

我试图获得工具提示,但无济于事。 我可能在想,所以任何帮助,将不胜感激。

如果超链接是使用PHPExcel自己的function填充的,或者直接定义为原始电子表格中的超链接,那么

 $objPHPExcel->getActiveSheet() ->getCell('C17')->getHyperlink(); 

会返回一个PHPExcel超链接对象,并且具有getUrl()getTooltip()

在调用此方法之前,您可以使用以下方法testing单元格是否包含超链接:

 $objPHPExcel->getActiveSheet() ->getCell('C17')->hasHyperlink(); 

请注意,工具提示是将鼠标hover在该单元格上时显示在小popup窗口中的文本….实际的“友好”值通常只是您使用的单元格值

 $friendlyText = $objPHPExcel->getActiveSheet() ->getCell('C17')->getValue(); 

但是,当使用MS Excel时,HYPERLINK()函数仅在该函数执行时创build超链接对象(因此调用hasHyperlink()将不会返回true),并且单元格的“raw”内容是公式,所以getValue()将返回该公式而不是“友好”的文本。 要获得链接本身,您需要执行该公式:

 $hyperlink = $objPHPExcel->getActiveSheet() ->getCell('C17')->getCalculatedValue(); 

这将返回一个PHPExcel超链接对象,但它目前仅包含Url,而不包含工具提示; 尽pipe我刚刚推动了对github上的1.8分支的更改,当计算公式时也会填充工具提示