インターネットの急速な発展に伴い、Excel は企業や個人の日常の事務作業において重要なツールの 1 つになりました。したがって、Excel のインポートおよびエクスポート機能は、多くのアプリケーションで必要な部分になっています。 ThinkPHP6 を使用して Excel のインポートとエクスポートを実装するにはどうすればよいですか?以下、この記事で詳しく紹介していきます。
1. ThinkPHP6 システム環境の確認
ThinkPHP6 を使用して Excel インポートおよびエクスポートを実装するには、まずシステム環境要件を満たす必要があります。 ThinkPHP6 では、composer を使用して phpoffice/phpspreadsheet ライブラリをインストールし、Excel 処理関数を実装できます。コマンド ラインで次のコマンドを実行してインストールします:
composer require phpoffice/phpspreadsheet
インストール後、コントローラー層に PhpOfficePhpSpreadsheetSpreadsheet および PhpOfficePhpSpreadsheetWriterXlsx クラス ライブラリを導入します。クラス このライブラリはコードビハインドで使用されます。
2. Excel エクスポート
ThinkPHP6 を使用して Excel エクスポートを実装するには、まずデータを Excel にインポートする必要があります。必要に応じて、コントローラー層に対応するコードを記述できます。たとえば、学生情報をエクスポートする場合、データベースにクエリを実行することで関連情報を取得できます。
use appcommonmodelStudent; public function export() { $students = Student::all(); }
Excel テーブルのヘッダーは非常に重要な部分です。 Excel テーブルのヘッダーを明確にするために、テーブルのヘッダー情報を生成するコードを作成できます。以下のコードでは、ループを使用してこれを実現します。
$spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle('学生信息表'); $sheet->setCellValue('A1', '序号'); $sheet->setCellValue('B1', '学号'); $sheet->setCellValue('C1', '姓名'); $sheet->setCellValue('D1', '性别'); $sheet->setCellValue('E1', '日期');
次に、取得したデータを Excel テーブルに書き込みます。データをループし、各生徒の情報を順番にテーブルに書き込みます。
foreach ($students as $key => $item) { $num = $key + 2; $sheet->setCellValue('A' . $num, $num - 1); $sheet->setCellValue('B' . $num, $item->number); $sheet->setCellValue('C' . $num, $item->name); $sheet->setCellValue('D' . $num, $item->sex); $sheet->setCellValue('E' . $num, $item->date); }
最後に、生成した Excel テーブルをローカルに出力、保存します。以下のコードでは、writer を使用して Excel テーブルを .xlsx 形式で保存し、ブラウザーに出力します。
$writer = new Xlsx($spreadsheet); $filename = "学生信息表.xlsx"; header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename=' . $filename); header('Cache-Control: max-age=0'); $writer->save('php://output'); exit();
3. Excel インポート
Excel のエクスポートに加えて、ThinkPHP6 は Excel のインポート機能も実装できます。次に、ThinkPHP6でExcelインポートを実装する方法を紹介します。
Excel をインポートする前に、まず Excel ファイルをアップロードする必要があります。ここでは、ThinkPHP6 に付属のファイル アップロード クラス ライブラリを使用します。アップロードが成功したら、PhpOfficePhpSpreadsheetIOFactory クラス ライブラリのメソッドを使用して、アップロードされた Excel ファイルのデータを読み取ります。
use thinkacadeFilesystem; $uploadFile = request()->file('file'); $saveName = Filesystem::disk('public')->putFile('excel', $uploadFile); $filePath = Filesystem::disk('public')->path($saveName); $spreadsheet = PhpOfficePhpSpreadsheetIOFactory::load($filePath); $sheet = $spreadsheet->getActiveSheet(); $highestRow = $sheet->getHighestRow(); $data = [];
Excel テーブル データを取得した後、データを走査し、配列を使用してデータの各行を保存する必要があります。エクセルの表で。
for($i = 2; $i <= $highestRow; $i++){ $item['number'] = $sheet->getCellByColumnAndRow(1, $i)->getValue(); $item['name'] = $sheet->getCellByColumnAndRow(2, $i)->getValue(); $item['sex'] = $sheet->getCellByColumnAndRow(3, $i)->getValue(); $item['date'] = date('Y-m-d H:i:s',$sheet->getCellByColumnAndRow(4, $i)->getValue() - 25569)*86400; $data[] = $item; }
最後に、Excel テーブルのデータをデータベースにインポートします。ここでは、ThinkPHP6 に付属の ORM 操作を使用して、データをデータベース テーブルに保存します。
use appcommonmodelStudent; Db::startTrans(); try { Student::insertAll($data); Db::commit(); } catch (Exception $e) { Db::rollback(); return json(['code' => '500', 'msg' => '操作失败']); } return json(['code' => '200', 'msg' => '操作成功']);
概要
この記事では、ThinkPHP6 を使用して Excel のインポートおよびエクスポート機能を実装する方法を詳しく紹介します。 PhpOfficePhpSpreadsheet クラス ライブラリを使用すると、Excel 関連の操作を簡単に完了できます。 Excel のインポートおよびエクスポート機能は企業管理システムで広く使用されており、関連スキルを理解し習得することは開発者にとって大きな助けとなります。
以上がThinkPHP6 を使用して Excel のインポートとエクスポートを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。