【发布时间】:2020-05-06 13:04:46
【问题描述】:
我刚刚将 Laravel 5.4 升级到 5.5,现在我必须更改所有使用旧 Laravel-Excel 的编码。
我使用的是 php 7.2.25,Windows/Wamp。
我正在尝试上传一个 excel 文件,获取它的数据,对其进行大量检查和计算(尚未在代码中),然后创建一个新的 excel 文件并为用户提供 Windows 的“保存文件”选项。
-
不确定如何获取 Windows 保存文件窗口,文档上没有任何说明。
- 如果我无法获得 Windows 保存文件窗口,我不确定如何将路径设置为:例如 My Documents\test。
-
使用我的代码,我得到了这个错误:
Symfony\Component\Debug\Exception\FatalThrowableError (E_RECOVERABLE_ERROR) 类型错误:Maatwebsite\Excel\Sheet::mapArraybleRow()的返回值必须是数组类型,返回字符串
我的导入类代码:
namespace App\Imports;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
use App\Exports\TimesheetsExport;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Facades\Excel;
use App\User;
class TimesheetsImport implements ToCollection, WithHeadingRow
{
private $user;
public function __construct($param)
{
$this->user = $param;
}
public function collection(Collection $rows)
{
$data = new Collection([$this->user->fullName()]);
foreach ($rows as $row)
{
$data->put($row['date'], $row['in'], $row['out']);
}
return Excel::download(new TimesheetsExport($data), 'testtttt.xlsx');
我的导出类:
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use Illuminate\Support\Collection;
class TimesheetsExport implements FromCollection
{
protected $rows;
public function __construct(Collection $rows)
{
$this->rows = $rows;
}
public function collection()
{
return $this->rows;
}
}
有人可以帮忙吗?
【问题讨论】:
标签: php laravel laravel-5 maatwebsite-excel