首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用新的laravel-excel 3.1加载模板?

如何使用新的laravel-excel 3.1加载模板?
EN

Stack Overflow用户
提问于 2019-03-25 14:51:06
回答 3查看 6K关注 0票数 2

我正在尝试使用laravel-excel加载excel模板文件,但在文档中找不到任何答案。

EN

回答 3

Stack Overflow用户

发布于 2019-07-04 18:16:28

您的控制器

代码语言:javascript
复制
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use Maatwebsite\Excel\Facades\Excel;
use App\Http\Controllers\ImportController;

class ExportController extends Controller
{

   /**
    * Display a listing of the resource.
    * @author Matin Malek
    * @return \Illuminate\Http\Response
    */
   public function generateFile() {
      return Excel::download(new \App\Export, 'sample.xlsx');
   }


}

您的模型文件

代码语言:javascript
复制
 <?php

namespace App;

use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
use Illuminate\Support\Facades\Input;
use DB;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Maatwebsite\Excel\Events\AfterSheet;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithCustomStartCell;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Maatwebsite\Excel\Events\BeforeExport;
use Maatwebsite\Excel\Events\BeforeSheet;
use Maatwebsite\Excel\Events\BeforeWriting;
use Maatwebsite\Excel\Excel;

class Export implements WithEvents
{
    /**
    * Export data 
    * @author Matin Malek
    * @return Array
    */
    public function registerEvents(): array
    {
      return [
         BeforeExport::class => function(BeforeExport $event){
            $event->writer->reopen(new \Maatwebsite\Excel\Files\LocalTemporaryFile(storage_path('filename.xlsx')),Excel::XLSX);

            $event->writer->getSheetByIndex(0);
            $event->getWriter()->getSheetByIndex(0)->setCellValue('A1','Your Value');
            return $event->getWriter()->getSheetByIndex(0);
         }
      ];
    }
}   

我不确定这是不是正确的方式。但是您可以在您的laravel模型文件中使用此代码来完成此操作。

票数 2
EN

Stack Overflow用户

发布于 2020-11-10 08:10:36

代码语言:javascript
复制
//Import Dependencies
use PhpOffice\PhpSpreadsheet\IOFactory;

//Inside your function
$reader = IOFactory::createReader('Xlsx');
$spreadsheet = $reader->load('path_to\excel_file.xlsx');

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="SF2.xlsx"');
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
//End of your function

希望能有所帮助。这就是我如何在我的项目中做到这一点

票数 0
EN

Stack Overflow用户

发布于 2019-04-02 14:32:48

代码语言:javascript
复制
<?php

namespace App\Imports;

use App\User;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;

class UsersImport implements ToCollection {

    public function collection(Collection $rows) {

        foreach ($rows as $row) {
            User::create([
                'name'     => $row[0],
                'email'    => $row[1],
                'password' => Hash::make($row[2]),
            ]);
        }
    }
}

另一个例子..。

代码语言:javascript
复制
<?php

namespace App\Imports;

use App\User;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel;

class UsersImport implements ToModel {

    /**
     * @param array $row
     *
     * @return User|null
     */
    public function model(array $row) {
        return new User([
            'name'     => $row[0],
            'email'    => $row[1],
            'password' => Hash::make($row[2]),
        ]);
    }
}

你可以在这里找到更多的例子... https://github.com/Maatwebsite/laravel-excel-docs/tree/master/3.1/imports

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55332536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档