Je suis isung PHPExcel et j'ai une URL dans une chaîne.
$url = 'http://dx.doi.org/10.1016/j.phymed.2005.11.003'
$xls = new PHPExcel();
$xls->setActiveSheetIndex(0);
$xls->getActiveSheet()->setCellValueByColumnAndRow(1,2,$url);
L'URL est défini comme un texte simple.
J'ai aussi essayé:
$xls->getActiveSheet()->getCellByColumnAndRow(1,2)->getHyperlink()->setUrl('"'.$url.'"');
Mais ensuite, en cliquant sur le lien, il essaie d'ouvrir un dossier local.
Une idée comment faire ça?
Je vous remercie.
MODIFIER
Quand j'essaye de le faire sans guillemets:
$xls->getActiveSheet()->getCellByColumnAndRow(1,2)->getHyperlink()->setUrl($url);
Alors j'obtiens l'erreur:
Exception' with message 'Invalid parameters passed.'
Ma vraie URL est
http://dx.doi.org/10.1016/j.phymed.2005.11.003
J'ai remarqué que lorsque vous définissez une barre oblique à la fin, le lien hypertexte fonctionne, mais l'URL est alors fausse.
J'ai trouvé la solution, en quelque sorte l'URL que j'avais n'était pas reconnu par Excel.
$url = str_replace('http://', '', $link);
$xls->getActiveSheet()->getCellByColumnAndRow(1,2)->getHyperlink()->setUrl('http://www.'.$url);
Et maintenant ça marche. J'espère que cela aidera.
Je devine que votre valeur de champ a la valeur entière. Si tel est le cas, vous devez d'abord convertir le type de données de cette cellule, puis définir le lien hypertexte. Ci-dessous est comment j'ai fait cela.
//set the value of the cell
$this->phpExcelObj->getActiveSheet()->SetCellValue('A1',$id);
//change the data type of the cell
$this->phpExcelObj->getActiveSheet()->getCell("A1")->setDataType(PHPExcel_Cell_DataType::TYPE_STRING2);
///now set the link
$this->phpExcelObj->getActiveSheet()->getCell("A1")->getHyperlink()->setUrl(strip_tags($link));
Essayez d'écrire votre code comme ci-dessous:
$objSheet->setCellValue('A1', '=Hyperlink("https://www.someurl.com/","Mi web")');
Je viens de perdre une heure sur le même sujet. Enfin (après vérification de la source PHPexcel), nous avons découvert que -> getCell ('A1') n'est pas requis et m'a toujours conduit à l'erreur suivante: Appel à une fonction membre getHyperlink () sur un non-objet. À la place, vous devez passer les coordonnées de cellule directement à getHyperlink ('A1') comme ceci:
$YourActiveSpreadsheet->getHyperlink('A1')->setUrl($url);