2017-05-16 1 views
0

Je veux convertir le chemin de mon hyperlien vers les liens ouverts avec PHPExcel. Cette méthode retournera un tableau d'objets hyperliens, indexés par adresse de cellule; et vous pouvez ensuite utiliser array_filter() avec un rappel approprié et l'indicateur ARRAY_FILTER_USE_KEY défini pour extraire ceux-ci dans une plage spécifique.PHPExcel str_replace

mon var_dump ($ liens); sortie:

enter image description here

Mais je ne sais pas comment boucler le tableau d'objets avec fonction array_filter() ..

J'essaie:

$test = str_replace($links, "file", "mnt"); 
var_dump($test); 

et je suis l'erreur ci-dessus. Des idées s'il vous plaît?

Répondre

1

La collection est un tableau d'objets, indexé par adresse de cellule; et l'objet PHPExcel_Cell_Hyperlink a un ensemble de méthodes documentées pour l'accès et la mise en ses données:

foreach($links as $cellAddress => $link) { 
    // get the URL from the PHPExcel_Cell_Hyperlink object 
    $url = $link->getUrl(); 
    // change the URL however you want here 
    $url = str_replace($url, "file", "mnt"); 
    // Set the new value for the link 
    $link->setUrl($url); 
} 

Si vous souhaitez modifier seulement les URL pour les cellules dans la colonne N, alors vous pouvez les envelopper dans un test if:

foreach($links as $cellAddress => $link) { 
    // Test for column N 
    sscanf($cellAddress, '%[A-Z]%d', $column, $row); 
    if ($column == 'N') { 
     // get the URL from the PHPExcel_Cell_Hyperlink object 
     $url = $link->getUrl(); 
     // change the URL however you want here 
     $url = str_replace($url, "file", "mnt"); 
     // Set the new value for the link 
     $link->setUrl($url); 
    } 
}