PHPExcel - 如何设置网址

2022-08-31 00:04:17

我是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);

网址设置为简单文本。

我还尝试了:

$xls->getActiveSheet()->getCellByColumnAndRow(1,2)->getHyperlink()->setUrl('"'.$url.'"');

但是,当单击链接时,它会尝试打开本地文件夹。

任何想法如何做到这一点?

谢谢。

编辑

当我尝试这样做时,不要带引号:

$xls->getActiveSheet()->getCellByColumnAndRow(1,2)->getHyperlink()->setUrl($url);

然后我得到错误:

Exception' with message 'Invalid parameters passed.'

我的真实网址是

http://dx.doi.org/10.1016/j.phymed.2005.11.003

我注意到,在末尾设置斜杠时,超链接有效,但URL是错误的。


答案 1

我已经找到了解决方案,不知何故,我的网址没有被excel识别。

$url = str_replace('http://', '', $link);
$xls->getActiveSheet()->getCellByColumnAndRow(1,2)->getHyperlink()->setUrl('http://www.'.$url);

现在它起作用了。希望这会有所帮助。


答案 2

我猜你的字段值有整数值。如果是这样,那么您首先必须转换该单元格的数据类型,然后设置超链接。以下是我是如何做到这一点的。

//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));

推荐