根据documentation,您可以使用批处理来加载文件。如果是大文件,您也可以对数据进行分块。
组块:
Excel::filter('chunk')->load('file.csv')->chunk(250, function($results)
{
foreach($results as $row)
{
// do stuff
}
});
批量导入:
Excel::batch('app/storage/uploads', function($rows, $file) {
// Explain the reader how it should interpret each row,
// for every file inside the batch
$rows->each(function($row) {
// Example: dump the firstname
dd($row->firstname);
});
});
我有一系列大文件,我想知道是否可以将这两个函数链接在一起。问题是两个函数都需要2个变量(第二个是_callback),关于如何将它们链接起来我很遗憾。
现在似乎对我来说唯一有用的东西是这样的,但我怀疑它确实做了什么:
Excel::filter('chunk')->batch('files', function($rows, $file){
答案 0 :(得分:0)
这应该有效:
Excel::batch(request()->file, function($rows, $file) {
Excel::filter('chunk')->selectSheetsByIndex(0)->load($file)->chunk($this->chunkSize, function($results) {
foreach ($results as $row) {
}
}, $this->shouldQueue);
});
您可以定义chunkSize和shouldQueue值。