5.7で動作確認を行っています。Excelの使用方法について説明を行なっています。本文書を読み終えるとテーブルに保存されているデータをEXCELファイルでダウンロード、または保存することができます。EXCELファイルに保存しているデータを一括でテーブルに保存することができます。Excelを使用するためにComposerを利用してmaatwebsite/excelのインストールを行います。maatwebsite/excelComposerがわからない人は下記の文書がおすすめです。あわせて読みたい入門者/初心者必見composerでパッケージを使うための基礎の基礎インストールすると下記のパッケージがインストールされます。(100%)maatwebsite/excelはversion2から3にアップして、マニュアルや操作方法も変更になっているので注意が必要です。本文章ではversion3について説明を行います。ExportのExportクラスを利用します。make:exportコマンドで作成することができます。Exportパッケージをインストールすることで実行できるコマンドです。Export専用のartisanコマンドです。usersテーブルに入ったデータをExportしてExcelファイルの作成を行うためmodelオプションでUserを指定して、ファイル名はUsersExportとします。successfully.appフォルダの下にExport/UsersExport.phpが作成されます。作成したUsersExport.phpにはcollectionメソッドが記述されています。}}テーブルからのデータ取得部分をUserExportとしてわけることで、取得したいデータが変わった場合は、collectionメソッドの中身を変えるだけで対応することができます。User::all()が記述されていない状態で作成されます。usersテーブルに入っているデータをExportしたいので、必ずusersテーブルへのデータ挿入を完了させておいてください。動作確認のためにusersテーブルへのテストデータの挿入する際はSeeding機能を使うことをおすすめします。tinkerを実行します。},usersテーブルデータのExportExcelファイルのダウンロードExportを実行するコントローラーの作成を行なってください。ここでは、UsersControllerを作成します。successfully.web.phpファイルに作成したUsersControllerコントローラーのルーティングを追加します。view('welcome');});Route::get('users','UsersController@export');UsersControllerコントローラーにexportメソッドを記述します。}ここまでのExport設定が完了したら、ブラウザを使用して、/usersにアクセスします。アクセスするとusers.xlsxファイルがダウンロードフォルダに保存されます。users.xlsxファイルを開くとUsersテーブルに保存されているすべての行が保存されています。ダウンロードしたEXCELファイルを開くEXCELファイルのヘッダー設定ダウンロードしたEXCELファイルには、列名が表示されていませんでした。下記の設定を行い、ヘッダーを表示させます。headingsメソッドだけではなく、WithHeadingsインターフェイスを忘れずに追加してください。}}ダウンロードしたファイルを開くと設定した列名が表示されます。列名が記述されたEXCEL列名に日本語を使用することができます。実際の列とheadingsの列名の数が一致しない場合はエラーにならず、不足した列名は空白で作成されます。シートに名前をつけるデフォルではExcelのシートの名前はWorksheetになっていますが、シート名を任意の名前に変更することができます。シート名を変更するためには、UsersExport.phpファイルにWithTitleインターフェイスを追加します。WithTitleを追加した後にtitleメソッドを追加し、シート名は指定すればシート名を指定した文字列に変更することができます。下記ではシート名はtestで作成されます。'test';}}ダウンロードする列を指定UsersExport.phpファイルのcollectionメソッドではUser::all()を指定していたためすべての列情報が表示されました。User::select('id','name','email')->get();}usersテーブルの中のidとnameとemailのみを取得することができます。collectionメソッドの内容を書き換えるだけで取得できるデータを変更することができるため、他のプログラムへの影響を最小限に留めることができます。Excelという名前ですが、csvなどExcel以外のフォーマットにも対応しています。対応しているフォーマットはMaatwebsite\Excel\Excel.phpに記述されています。'Tcpdf';下記のようにExcel::CSVを指定してダウンロードを行うとカンマ区切りのcsvファイルとして作成することができます。}ダウンロードするフォーマットを指定しましたが、ファイルの拡張子を変更するだけで自動でダウンロードするフォーマットを変更してくれます。}htmlファイルとして保存することができ、テーブル要素の中にデータを保存します。ファイル内でCSSが適用されているため、あまりきれいには表示されませんが、CSSを変更することで表示は簡単に変更することができます。htmlファイルでダウンロードExportableトレイトここまでの処理はExcel::downloadを使っていましたがExportableトレイトを使うと実行するコードを下記のように変更することができます。UsersExport)->download('test.xlsx');}ExportableトレイトはUsersExport.phpファイルで下記のように記述します。Excelを利用すると複数シートのExcelファイルの作成も簡単に行うことができます。複数のシートを作成するためには、WithMultipleSheetsインターフェイスとsheetsメソッドが必要になります。1シートの場合はUsersExport.phpの中でcollectionメソッドを利用してデータを取得していましたが、複数シートの場合は、データを取得する別のクラスをsheetsメソッドの中で呼び出します。forを使って1から10までの数字をUsersSheetクラスの中に挿入しています。$sheets;}}UsersSheetクラスはUsersExportを複製して下記のように作成します。今回はインスタンス化の際に$idを受け取り、その値を元に検索を行っています。User::where('id',$this->id)->get();}}UsersControllerはこれまで通り、UsersExportを指定しています。}ダウンロードを行うとtest.xlsxの中には10シートが作成され、それぞれのシートに1ユーザのみの行が挿入されています。複数のシートを作成ここでは動作確認のために実行したこともあり、1シートに1ユーザの情報を取り出してExcelファイルを作成しました。複数のモデルのデータを別シートで取得したい場合は、UsersSheet.php以外にPostsSheetやInvoicesSheetを追加することで実現可能です。サーバ上への保存するアップロードしたファイルの保存方法について確認します。ダウンロードする際は、downloadメソッドを利用しましたが、ディスクに保存する場合は、storeメソッドを利用します。保存される場所は、Laravelインストールディレクトリのstorage/appの下に保存されます。'users.xlsx');storage/appディレクトリの下にあるpublicに保存する場合は、下記のように変更することで行うことができます。本文書ではusersテーブルにデータをImportするためUserモデル用のImportファイルの作成を行います。successfully.appフォルダの下にImport/UsersImport.phpが作成されます。作成したUsersImport.phpには、アップロードするEXCELファイルの列がインポートするテーブルのどの列に対応するのかを記述していきます。}}インポートしたいデータが保存されたEXCELファイルを確認します。A列には名前、B列にはEmail、C列にはパスワードが入っています。Importを行うEXCELファイルこの列情報を元にUsersImport.phpを更新します。usersテーブルnameには0列、emailには1列、passwordは暗号化を行うので、Hashを使って列2を暗号化しています。列番号は左から順番に0から番号が振られます。}usersテーブルへのImportweb.phpにusersテーブルへのImportに必要なルーティングを追加します。Route::resource('/users','UsersController');UsersControllerのではファイルをアップロードするフォームを表示するindexメソッドとアップロードしたファイルをImportするstoreメソッドを記述しています。}}resources¥viewsディレクトリの下にindex.blade.phpファイルを作成します。type="submit">アップロード</button></form></body></html>/usersにブラウザからアクセスするとファイルをアップロードするため画面が表示されます。Importファイルアップデート画面ファイルには下記の内容が記述されたEXCELファイルをアップロードします。tinker等を使用して、usersテーブルの行の情報を確認するとImportした2行の情報が追加されていることを確認することができます。Importの日本語についてImportするEXCELファイルに日本語を使用しても文字化けなしでImportすることができます。日本語で登録した情報をEXCELファイルでダウンロードすると文字化けなしで行うことができます。Importの日本語について。