我正在尝试使用laravel-excel加载excel模板文件,但在文档中找不到任何答案。
发布于 2019-07-04 18:16:28
您的控制器
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');
}
}您的模型文件
<?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模型文件中使用此代码来完成此操作。
发布于 2020-11-10 08:10:36
//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希望能有所帮助。这就是我如何在我的项目中做到这一点
发布于 2019-04-02 14:32:48
<?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]),
]);
}
}
}另一个例子..。
<?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
https://stackoverflow.com/questions/55332536
复制相似问题