Rolavel 8とラーラーベル7でスプレッドシート(Excel)からデータをアップロードする方法
良い日、私は今日、私は何かに取り組んでいたので、私は、私はあなたの仲間のためにそれを皿にさせて、私はプロジェクト管理アプリに取り組んでいた、アプリは、ユーザーがプロジェクトを作成することができます、私はユーザーが別のセルを含むExcelシートをアップロードできるようになる機能を追加しました.アプリケーションは、セルの値を抽出し、データベース内のテーブルの列にある別のフィールドに追加します.
私は私たちのcrudアプリと同じように達成する方法についてご案内します、テクニックは、より大きな規模に拡張することができます、実際に私のアプリでは、それはとても複雑です、私は多くのセルを抽出することができますし、別のテーブルに追加することができますまた、さまざまなデータを持つデータの多くの行として.あなたが明確化を必要とする場合、またはエラーを発生している場合に私に手を伸ばす自由に感じる.
私のクリックより多くの更新プログラムを取得するに従ってください.
私の記事のように、あなたはrepoからフィニッシュコードを取得することができますし、また、私の前の記事から、最初のコードを得ることができます.
gitクローンhttps://github.com/Kingsconsult/laravel_8_modal.git
cdララベルズ8モーテルモーダル/ 作曲家は、 をインストールします NPMインストール CP.環境変数例.ENV PHPアルチザンキー: を生成しますデータベースの設定を追加します.ENVファイル(それを達成する方法に関する私の記事をチェックすることができます) PHP職人は、 を移動します PHPアルティザンサーブ(サーバーが開く場合は、http://127.0.0.1:8000、我々は行くには良いです)
http://127.0.0.1:8000/projectsに移動する
これは、我々のスプレッドシート、phpspreadsheetの周りのシンプルでエレガントなラッパーを使用する予定ですパッケージです.
プロバイダーでプロバイダークラスを登録することができます.これはMataWeb/Excelが自動的に発見されるため、オプションです.
config/appに移動します.PHPを追加し、
また、以下のエイリアスにファサードを加えます
インポートと呼ばれるフォルダは、app/にProjectSimportを含んで作成されます.PHP
プロジェクトのポートを編集します.PHPとこの懸念をトップに追加します
これは、私たちの行の見出しを読んで、さまざまなセルを適切なテーブルの各フィールドに読んで、ProjectSimportクラスにも実装します
ルート/Web/フォルダのWebルートファイルに移動し、次のコードを追加し、リソースルートの前にあなたのポストルートを記述することを確認します.
私たちのルートでは、URIが「プロジェクト/importプロジェクト」であり、コントローラメソッドが' import project 'であるポストルートを作成しました.私はいつも参照のために私のルート名を与え、またフロントエンドのコードを短縮する.
そこで、私たちのルートに、「import project」と呼ばれるプロジェクトコントローラにメソッドがあることを伝えました.
名前空間の後、コントローラの上部のクラスを呼び出します
これは、ProjectControllerの現在のメソッドです
ファイルタイプと名前ファイルを持つ入力タグを含んでいるフォームを追加しました.また、submitボタンを押すと、form typeに“multipart/form data”を追加することを忘れないでください.
私たちは、異なる2つの(2)シートを含むスプレッドシートを作成するつもりです.
ファーストシート
二枚目
それは、我々が必要とするすべてです
http://127.0.0.1:8000/projectsに行く
ファイルの選択
CRUDシートというファイル.xlsxが選択されました
ボタンをクリックする
あなたは1と2は我々のスプレッドシートに入力されたプロジェクトであり、プロジェクトの成功した作成の通知があることがわかります.
repoから完全なコードを得ることができます.
私の記事の詳細については、コメント、提案や反応を残すことができます
私の他のポスト
私は私たちのcrudアプリと同じように達成する方法についてご案内します、テクニックは、より大きな規模に拡張することができます、実際に私のアプリでは、それはとても複雑です、私は多くのセルを抽出することができますし、別のテーブルに追加することができますまた、さまざまなデータを持つデータの多くの行として.あなたが明確化を必要とする場合、またはエラーを発生している場合に私に手を伸ばす自由に感じる.
私のクリックより多くの更新プログラムを取得するに従ってください.
私の記事のように、あなたはrepoからフィニッシュコードを取得することができますし、また、私の前の記事から、最初のコードを得ることができます.
ステップ1:セットアップアプリ
ステップ2:MattWebサイトをインストールする
これは、我々のスプレッドシート、phpspreadsheetの周りのシンプルでエレガントなラッパーを使用する予定ですパッケージです.
composer require maatwebsite/excel
ステップ3 :プロバイダーでクラスを登録する(オプション)
プロバイダーでプロバイダークラスを登録することができます.これはMataWeb/Excelが自動的に発見されるため、オプションです.
config/appに移動します.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
インポートと呼ばれるフォルダは、app/にProjectSimportを含んで作成されます.PHP
ステップ6 :インポートクラスを書く
プロジェクトのポートを編集します.PHPとこの懸念をトップに追加します
use Maatwebsite\Excel\Concerns\WithHeadingRow;
これは、私たちの行の見出しを読んで、さまざまなセルを適切なテーブルの各フィールドに読んで、ProjectSimportクラスにも実装します
<?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 :ルートを作成する
ルート/Web/フォルダのWebルートファイルに移動し、次のコードを追加し、リソースルートの前にあなたのポストルートを記述することを確認します.
<?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 :コントローラのメソッドを作成する
私たちのルートでは、URIが「プロジェクト/importプロジェクト」であり、コントローラメソッドが' import project 'であるポストルートを作成しました.私はいつも参照のために私のルート名を与え、またフロントエンドのコードを短縮する.
そこで、私たちのルートに、「import project」と呼ばれるプロジェクトコントローラにメソッドがあることを伝えました.
名前空間の後、コントローラの上部のクラスを呼び出します
これは、ProjectControllerの現在のメソッドです
ステップ9 :インデックスを変更します。ブレード.ファイルアップロードを受け入れるPHPファイル
ファイルタイプと名前ファイルを持つ入力タグを含んでいるフォームを追加しました.また、submitボタンを押すと、form typeに“multipart/form data”を追加することを忘れないでください.
ステップ10 :スプレッドシートを作成する
私たちは、異なる2つの(2)シートを含むスプレッドシートを作成するつもりです.
ファーストシート
二枚目
それは、我々が必要とするすべてです
http://127.0.0.1:8000/projectsに行く
ファイルの選択
CRUDシートというファイル.xlsxが選択されました
ボタンをクリックする
あなたは1と2は我々のスプレッドシートに入力されたプロジェクトであり、プロジェクトの成功した作成の通知があることがわかります.
repoから完全なコードを得ることができます.
私の記事の詳細については、コメント、提案や反応を残すことができます
私の他のポスト
ララベル8クラッドアプリ、簡単なガイド
キングス・ 月9日・ 10分読む
#laravel8
#mvc
#crud
#laravel
Laravel 8 Auth (登録とログイン)
キングス・ 月17日・ 4分読む
#auth
#laravel8
#jetstream
#laravel
Reference
この問題について(Rolavel 8とラーラーベル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