Mit der rasanten Entwicklung des Internets ist Excel für Unternehmen und Privatpersonen zu einem wichtigen Werkzeug in der täglichen Büroarbeit geworden. Daher ist die Import- und Exportfähigkeit von Excel zu einem notwendigen Bestandteil vieler Anwendungen geworden. Wie verwende ich ThinkPHP6, um den Excel-Import und -Export zu implementieren? Im Folgenden wird es Ihnen in diesem Artikel ausführlich vorgestellt.
1. Überprüfung der ThinkPHP6-Systemumgebung
Um ThinkPHP6 zum Implementieren des Excel-Imports und -Exports zu verwenden, müssen Sie zunächst die Systemumgebungsanforderungen erfüllen. In ThinkPHP6 können Sie Composer verwenden, um die Bibliothek phpoffice/phpspreadsheet zu installieren und Excel-Verarbeitungsfunktionen zu implementieren. Führen Sie zur Installation den folgenden Befehl in der Befehlszeile aus:
composer require phpoffice/phpspreadsheet
Führen Sie nach der Installation die Klassenbibliotheken PhpOfficePhpSpreadsheetSpreadsheet und PhpOfficePhpSpreadsheetWriterXlsx in der Controller-Ebene ein. Diese Klassenbibliotheken werden in unserem Code dahinter verwendet.
2. Excel-Export
Wenn Sie ThinkPHP6 verwenden, um den Excel-Export zu implementieren, müssen Sie zunächst die Daten in Excel importieren. Wir können bei Bedarf entsprechenden Code in die Controller-Ebene schreiben. Wenn Sie beispielsweise Studenteninformationen exportieren, können Sie relevante Informationen durch Abfragen der Datenbank erhalten.
use appcommonmodelStudent; public function export() { $students = Student::all(); }
Die Tabellenkopfzeile von Excel ist ein sehr wichtiger Teil. Um die Kopfzeile der Excel-Tabelle klarer zu gestalten, können wir Code schreiben, um die Kopfzeileninformationen der Tabelle zu generieren. Im folgenden Code verwenden wir dazu eine Schleife.
$spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle('学生信息表'); $sheet->setCellValue('A1', '序号'); $sheet->setCellValue('B1', '学号'); $sheet->setCellValue('C1', '姓名'); $sheet->setCellValue('D1', '性别'); $sheet->setCellValue('E1', '日期');
Als nächstes schreiben Sie die erhaltenen Daten in eine Excel-Tabelle. Gehen Sie die Daten durch und schreiben Sie die Informationen jedes Schülers der Reihe nach in die Tabelle.
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); }
Abschließend die generierte Excel-Tabelle lokal ausgeben und speichern. Im folgenden Code verwenden wir Writer, um die Excel-Tabelle im XLSX-Format zu speichern und an den Browser auszugeben.
$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-Import
Neben dem Excel-Export kann ThinkPHP6 auch die Importfunktion von Excel implementieren. Als nächstes stellen wir Ihnen vor, wie Sie den Excel-Import in ThinkPHP6 implementieren.
Bevor wir Excel importieren, müssen wir zuerst die Excel-Datei hochladen. Hier verwenden wir die Klassenbibliothek zum Hochladen von Dateien, die mit ThinkPHP6 geliefert wird. Nachdem der Upload erfolgreich war, verwenden Sie die Methode in der PhpOfficePhpSpreadsheetIOFactory-Klassenbibliothek, um die Daten in der hochgeladenen Excel-Datei zu lesen.
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 = [];
Nachdem wir die Daten der Excel-Tabelle erhalten haben, müssen wir die Daten durchlaufen und ein Array verwenden, um jede Datenzeile in der Excel-Tabelle zu speichern.
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; }
Zuletzt importieren wir die Daten aus der Excel-Tabelle in die Datenbank. Hier verwenden wir die ORM-Operation, die mit ThinkPHP6 geliefert wird, um die Daten in der Datenbanktabelle zu speichern.
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' => '操作成功']);
Zusammenfassung
In diesem Artikel wird detailliert beschrieben, wie Sie mit ThinkPHP6 Excel-Import- und Exportfunktionen implementieren. Durch die Verwendung der PhpOfficePhpSpreadsheet-Klassenbibliothek können wir Excel-bezogene Vorgänge problemlos ausführen. Excel-Import- und Exportfunktionen werden häufig in Unternehmensverwaltungssystemen verwendet. Das Verstehen und Beherrschen entsprechender Fähigkeiten wird für Entwickler eine große Hilfe sein.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie ThinkPHP6 zum Implementieren des Excel-Imports und -Exports. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!