web-dev-qa-db-ja.com

PHPExcel-URLを設定する方法

私は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が間違っていることに気付きました。

14
Miloš

私は解決策を見つけましたが、どういうわけか私が持っていたURLはExcelで認識されませんでした。

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

そして今それは動作します。これがお役に立てば幸いです。

21
Miloš

私はあなたのフィールド値が整数値を持っていると思います。その場合は、まずそのセルのデータ型を変換してからハイパーリンクを設定する必要があります。以下は私がこれを行った方法です。

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

以下のようにコードを書いてみてください:

$objSheet->setCellValue('A1', '=Hyperlink("https://www.someurl.com/","Mi web")');

5

同じ問題でちょうど1時間を失った。最後に(PHPexcelソースを確認した後)、---> getCell( 'A1')は不要であり、常にリードしていることがわかりました次のエラーに私:非オブジェクトのメンバー関数getHyperlink()への呼び出し代わりにセル座標をgetHyperlink( 'A1')に直接渡す:

$YourActiveSpreadsheet->getHyperlink('A1')->setUrl($url);
0
Patrick