【问题标题】:How to delete hyperlink from cell in phpexcel如何从phpexcel中的单元格中删除超链接
【发布时间】:2016-05-25 04:02:17
【问题描述】:

我正在尝试编辑工作表并删除行,当我这样做时,具有电子邮件地址(带有 mailto 超链接)的单元格会保留超链接,尽管单元格值被新单元格替换为移动到它的位置。

例如 单元格 A1 有电子邮件地址 abc@abc.com,单元格 A2 有一个空白单元格,当我使用 $sheet->removeRow 函数删除第 1 行时,该行被删除,但是 A1 现在是一个空白单元格,带有指向 abc@ 的 mailto 链接abc.com

我无法使用 phpexcel 删除单元格上的此超链接

我已经尝试了以下

  1. $cell->getHyperlink()->setUrl();
  2. $cell->setHyperlink(new PHPExcel_Cell_Hyperlink(''));

任何帮助将不胜感激

【问题讨论】:

  • 您要删除所有链接,还是只删除一个链接?
  • 我很高兴删除所有或一个,任何真正有效的东西:)
  • 你可以试试$cell->setHyperlink(null);

标签: php phpexcel


【解决方案1】:

将值 null 传递给针对单元格的 setHyperlink 方法

通过查看代码,这会找到单元格所附加到的工作表,如果值为 null,则删除超链接

$cell->setHyperlink(null);

Worksheet.php https://github.com/PHPOffice/PHPExcel/blob/1.8/Classes/PHPExcel/Worksheet.php#L2702

Cell.php https://github.com/PHPOffice/PHPExcel/blob/1.8/Classes/PHPExcel/Cell.php#L461

【讨论】:

    【解决方案2】:

    根据文档,以下代码将用于添加超链接

    $objPHPExcel->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');

    $objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('http://www.phpexcel.net'); 同样喜欢试试下面的代码

    setUrlEmptyNull 值。

    $objPHPExcel->getActiveSheet()->setCellValue('E26', '');

    $objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('');

    【讨论】:

    • 只有 null 会删除链接,正如 Brett 首先建议的那样,我已将他的答案标记为正确
    • 谢谢@user2636664。我提到要尝试 Null 或 Empty
    • 我知道并感谢您付出的努力。再次感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 2018-10-28
    • 2023-04-10
    • 2017-05-09
    • 2014-08-10
    • 1970-01-01
    相关资源
    最近更新 更多