어떻게 laravel 8과 laravel 7에서 전자 표(excel)에서 데이터를 업로드합니까

안녕하십니까? 오늘 제가 한 가지 일을 하고 있습니다. 그래서 여러분께 소개해 드리겠습니다. 저는 프로젝트 관리 프로그램을 개발하고 있습니다. 이 프로그램은 사용자가 프로젝트를 만들 수 있도록 합니다. 저는 다른 칸을 포함하는 excel표를 올릴 수 있는 기능을 추가했습니다.그런 다음 응용 프로그램은 셀의 값을 추출하여 데이터베이스 테이블 열의 다른 필드에 추가합니다.
CRUD 응용 프로그램을 사용하여 같은 효과를 실현하는 방법을 가르쳐 드리겠습니다. 이 기술들은 더 큰 범위로 확장될 수 있습니다. 사실상 제 응용 프로그램에서는 매우 복잡합니다. 저는 많은 칸을 추출하여 다른 표에 추가할 수도 있고, 가능한 한 많은 데이터 줄에 추가할 수도 있습니다.만약 당신이 해명을 필요로 하거나 오류가 발생하면 언제든지 저에게 연락 주세요.
내 것을 누르면 나를 따라 더 많은 업데이트를 얻을 수 있습니다.
내 문장과 마찬가지로 당신은 repo에서 완성 코드를 얻을 수도 있고, 나의 이전 문장에서 초기 코드를 얻을 수도 있다.

1단계: 애플리케이션 설정

  • git 클론https://github.com/Kingsconsult/laravel_8_modal.git
  • cd laravel_8_모드/
  • composer 설치
  • npm 설치
  • cp.환경인스턴스env
  • php artisan 키: 생성
  • 에 데이터베이스 구성을 추가합니다.env 파일 (내 글을 보고 이를 어떻게 실현하는지 알 수 있습니다)
  • phpartisan 이전
  • phpartisanserve(서버가 열리면http://127.0.0.1:8000, 우리는 시작할 수 있습니다)

  • 탐색http://127.0.0.1:8000/projects
  • 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 에서 전체 코드를 가져올 수 있습니다.
    나의 더 많은 문장에 관심을 가져 주십시오. 당신은 평론, 건의와 반응을 남길 수 있습니다
    내 다른 게시물 액세스



    좋은 웹페이지 즐겨찾기