어떻게 laravel 8과 laravel 7에서 전자 표(excel)에서 데이터를 업로드합니까
CRUD 응용 프로그램을 사용하여 같은 효과를 실현하는 방법을 가르쳐 드리겠습니다. 이 기술들은 더 큰 범위로 확장될 수 있습니다. 사실상 제 응용 프로그램에서는 매우 복잡합니다. 저는 많은 칸을 추출하여 다른 표에 추가할 수도 있고, 가능한 한 많은 데이터 줄에 추가할 수도 있습니다.만약 당신이 해명을 필요로 하거나 오류가 발생하면 언제든지 저에게 연락 주세요.
내 것을 누르면 나를 따라 더 많은 업데이트를 얻을 수 있습니다.
내 문장과 마찬가지로 당신은 repo에서 완성 코드를 얻을 수도 있고, 나의 이전 문장에서 초기 코드를 얻을 수도 있다.
1단계: 애플리케이션 설정
2단계: MattWeb/excel 설치
이것은 우리가 전자 표에 사용할 소프트웨어 패키지입니다. 이것은 phpspredsheet를 둘러싼 간단하지만 우아한 포장입니다.
composer require maatwebsite/excel
3단계: 공급자에 클래스 등록(옵션)
공급자에 공급자 클래스를 등록할 수 있습니다. 이것은 선택할 수 있습니다. 왜냐하면maatwebsite/excel은 자동으로 발견되기 때문입니다.
구성/적용으로 이동합니다.php 및 추가
Maatwebsite\Excel\ExcelServiceProvider::class,
다음 별칭에 모양새를 추가할 수도 있습니다.
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
단계 4: 제작 구성
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
단계 5: 가져오기 클래스 만들기
php artisan make:import ProjectsImport --model=Models/Project
ProjectsImport가 포함된 imports라는 폴더가 app/에 생성됩니다.php
6단계: 가져오기 클래스 작성
항목 가져오기를 편집합니다.php 및 이 문제를 맨 위에 추가
use Maatwebsite\Excel\Concerns\WithHeadingRow;
이것은 우리가 줄의 제목을 읽고 각종 칸을 표의 각 필드에 대응하며 프로젝트Import 클래스로 실현하는 데 도움을 줄 것이다
<?php
namespace App\Imports;
use App\Models\Project;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
class ProjectsImport implements ToModel, WithHeadingRow
{
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function model(array $row)
{
return new Project([
'name' => $row['name'],
'introduction' => $row['introduction'],
'location' => $row['location'],
'cost' => $row['cost']
]);
}
}
단계 7: 노선 만들기
루트/웹/폴더에 있는 웹 루트 파일로 이동하고 다음 코드를 추가하여 자원 루트 이전에 게시물 루트를 작성할 수 있도록 합니다.
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ProjectController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::post('projects/importProject', [ProjectController::class, 'importProject'])->name('importProject');
Route::resource('projects', ProjectController::class);
단계 8: 컨트롤러에서 생성 방법
우리의 루트에서 우리는post 루트를 만들었는데 그 중에서 URI는'projects/import Project'이고 컨트롤러 방법은'import Project'이며 우리도 그것에 같은 이름을 지어주었다.나는 항상 나의 노선 이름을 참고로 제공하고 전방에서 코드를 단축한다.
그래서 저희가 알려준 노선은 저희 프로젝트 컨트롤러에'import 프로젝트'라는 방법이 있습니다. 지금 이 방법을 만들어야 합니다.
컨트롤러 맨 위의 이름 공간을 호출한 클래스
저희가 프로젝트 컨트롤러에 있는 방법이에요.
단계 9: 색인을 수정합니다.칼날php 파일은 파일 업로드 수락
우리는 파일 형식과 이름 파일이 있는 입력 태그와 제출 단추를 포함하는 폼을 추가했습니다. enctype = "다부분/폼 데이터"를 폼 태그에 추가하는 것을 잊지 마십시오.
단계 10: 스프레드시트 작성
우리는 서로 다른 세부 사항을 가진 두 개의 표를 포함하는 전자 표를 만들 것입니다. 각 표는 우리 표의 다른 줄로 될 것입니다.
첫장
두 번째 장
이것이 바로 우리가 필요로 하는 것이니, 우리 한번 해 보자
이동 http://127.0.0.1:8000/projects
파일 선택 클릭
crud sheet라는 파일xlsx 선택
업로드 단추 클릭
1번과 2번은 우리가 전자 표에 입력한 항목이며, 프로젝트를 성공적으로 만들었다는 통지가 있을 것이다.
repo 에서 전체 코드를 가져올 수 있습니다.
나의 더 많은 문장에 관심을 가져 주십시오. 당신은 평론, 건의와 반응을 남길 수 있습니다
내 다른 게시물 액세스
Laravel 8 CRUD 어플리케이션, 간단한 설명서
Kingsconsult 회사・ 9월 9일・ 10분 읽기
Laravel 8 Auth(등록 및 로그인)
Kingsconsult 회사・ 9월 17일・ 4분 읽기
Reference
이 문제에 관하여(어떻게 laravel 8과 laravel 7에서 전자 표(excel)에서 데이터를 업로드합니까), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kingsconsult/how-to-upload-data-with-excel-sheet-in-laravel-8-and-laravel-7-3515텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)