我刚刚升级了Laravel5.4到5.5,现在我必须更改使用旧的Laravel的所有编码。
我使用的是php 7.2.25,Windows/Wamp。
我试图上传一个excel文件,获取它的数据,对它做大量的检查和计算(还没有在代码中),然后创建一个新的excel文件,并给用户Windows 'Save‘选项。
documentation.
1. If I can't get the Windows save file window, I'm not sure how to set the path to: My Documents\test for example.Symfony \ Component \ Debug \ 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;
}
}有人能帮忙吗?
发布于 2020-01-21 08:31:58
过了一天半,我终于成功了。
工作守则:
进口类别:
namespace App\Imports;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Facades\Excel;
use App\User;
class TimesheetsImport implements ToCollection, WithHeadingRow
{
public $data;
public function collection($rows)
{
$this->data = $rows;
}
}出口类别:
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
class TimesheetsExport implements FromCollection
{
protected $rows;
public function __construct($rows)
{
$this->rows = $rows;
}
public function collection()
{
return $this->rows;
}
}我的控制器:
public function importTimesheets(Request $request)
{
$import = new TimesheetsImport;
$rows = Excel::toCollection($import, $request->file('file'));
return Excel::download(new TimesheetsExport($rows), 'test.xlsx');
}通过这段代码,我还可以得到Windows的“保存文件”。
这不好玩,但它已经完成了,我希望它能帮助到别人。
发布于 2020-06-18 02:04:53
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Excel;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Excel as ExcelType; ..。
$array = [[1,2,3],[3,2,1]];
return \Excel::download(new class($array) implements FromArray{
public function __construct($array)
{
$this->array = $array;
}
public function array(): array
{
return $this->array;
}
},'db.xlsx', ExcelType::XLSX); 在没有额外框架的情况下决定了。Laravel 7*,Maatwebsite 3*
https://stackoverflow.com/questions/59824682
复制相似问题