Я isung PHPExcel и имею URL-адрес в строке. При выполнении:
$url = 'http://dx.doi.org/10.1016/j.phymed.2005.11.003' $xls = new PHPExcel(); $xls->setActiveSheetIndex(0); $xls->getActiveSheet()->setCellValueByColumnAndRow(1,2,$url);
URL-адрес задан как простой текст.
Я также пробовал:
$xls->getActiveSheet()->getCellByColumnAndRow(1,2)->getHyperlink()->setUrl('"'.$url.'"');
Но затем, щелкнув по ссылке, она пытается открыть локальную папку.
Любая идея, как это сделать?
Спасибо.
РЕДАКТИРОВАТЬ
Когда я пытаюсь сделать это без кавычек:
$xls->getActiveSheet()->getCellByColumnAndRow(1,2)->getHyperlink()->setUrl($url);
Затем я получаю сообщение об ошибке:
Exception' with message 'Invalid parameters passed.'
Мой настоящий URL-адрес
http://dx.doi.org/10.1016/j.phymed.2005.11.003
Я заметил, что при установке косой черты в конце гиперссылка работает, но URL-адрес ошибочен.
Я нашел решение, так что URL-адрес, который у меня был, не был распознан excel.
$url = str_replace('http://', '', $link); $xls->getActiveSheet()->getCellByColumnAndRow(1,2)->getHyperlink()->setUrl('http://www.'.$url);
И теперь это работает. Надеюсь, это поможет.
Я предполагаю, что ваше значение поля имеет целочисленное значение. Если это так, тогда вам сначала нужно преобразовать тип данных этой ячейки, а затем установить гиперссылку. Вот как я это сделал.
//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));
Просто потерял час по тому же вопросу. Наконец (после проверки источника PHPexcel) выяснилось, что -> getCell ('A1') не требуется и всегда приводит меня к следующей ошибке: вызов функции-члена getHyperlink () для не-объекта. Вместо этого вы должны передать координаты ячейки непосредственно в getHyperlink ('A1') следующим образом:
$YourActiveSpreadsheet->getHyperlink('A1')->setUrl($url);
Попробуйте написать код ниже:
$objSheet->setCellValue('A1', '=Hyperlink("https://www.someurl.com/","Mi web")');