首页 > 解决方案 > Laravel Excel 使用 URL 获取导入单元格访问权限

问题描述

我正在使用Laravel 8Laravel Excel 3.1导入工作表,并且无法访问当前的 Cell 对象及其超链接/URL。

标签: excellaravelcelllaravel-excel

解决方案


有解决办法!OnEachRow使用带有接口的 Laravel Excel 导入模型:自行处理持久性并编写更多代码

<?php
//call your import script
config(['excel.imports.read_only' => false]); // to get access to all of the cells content
\Maatwebsite\Excel\Facades\Excel::import(new \App\Imports\Sheet1, $xlsFile);

Laravel Excel 导入类:

<?php
namespace App\Imports;
use Maatwebsite\Excel\Cell;
use Maatwebsite\Excel\Row;
use Maatwebsite\Excel\Concerns\OnEachRow;

class Sheet1 implements OnEachRow
{
    public function onRow(Row $row)
    {
        foreach ($row->getDelegate()->getCellIterator() as $cell) {
            $cellObj = new Cell($cell); //Laravel Facade Cell Object
            $cellPHPOffice = $cellObj->getDelegate(); // PHP SpreadsheetCell object
            if ($cellPHPOffice->hasHyperlink()) {
                $url = $cellPHPOffice->->getHyperlink()->getUrl(); // Cell URL: works ONLY with excel.imports.read_only => false
            }
        }
    }
}

推荐阅读