2016-03-01 28 views
0

我在Excel表格中有一個超鏈接,如下所示。PHPExcel從超鏈接中獲取友好名稱?

=HYPERLINK("mailto:[email protected]","[email protected]") 

我看過很多有關如何使用提取從超鏈接的URL的例子:

$cell->getUrl(); 

但我似乎無法弄清楚是如何獲得的友好名稱或超鏈接的第二部分在此情況下將是:

[email protected]

我試圖獲取工具提示,但無濟於事。 我可能在想它,所以任何幫助,將不勝感激。

回答

1

如果超鏈接使用PHPExcel自己的功能填充,或者直接定義爲原來的電子表格中的超鏈接,然後

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

將返回PHPExcel超鏈接對象,並且具有兩個getUrl()getTooltip()

方法

您可以測試細胞是否含有調用使用此方法前一個超鏈接:

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

請注意,工具提示是將鼠標懸停在該單元格上時顯示在小彈出窗口中的文本....實際的「友好」值通常只是您要使用的單元格值

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

但是,當使用MS Excel時,HYPERLINK()函數僅在該函數執行時創建超鏈接對象(因此調用hasHyperlink()將不會返回true),並且該單元格的「raw」內容爲公式,因此getValue()將返回該公式而不是「友好」文本。要獲得鏈接本身,則需要執行該公式:

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

這會返回一個PHPExcel超鏈接對象,但目前它只包含的URL,而不是提示;儘管我剛剛推動了對github上的1.8分支的更改,當計算公式時,也會填充工具提示

+1

使用'getCalculatedValue()'返回友好名稱。 – PriestVallon