Heim > PHP-Framework > Denken Sie an PHP > So verwenden Sie ThinkPHP6 zum Implementieren des Excel-Imports und -Exports

So verwenden Sie ThinkPHP6 zum Implementieren des Excel-Imports und -Exports

WBOY
Freigeben: 2023-06-21 18:01:41
Original
4768 Leute haben es durchsucht

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

  1. Exportieren Sie Excel-Daten

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();
}
Nach dem Login kopieren
  1. Legen Sie die Kopfzeile der Excel-Tabelle fest

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', '日期');
Nach dem Login kopieren
  1. Daten in eine Excel-Tabelle schreiben

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);
}
Nach dem Login kopieren
  1. Excel-Tabelle ausgeben und lokal speichern

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();
Nach dem Login kopieren

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.

  1. Excel-Datei hochladen und Daten lesen

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 thinkacadeFilesystem;

$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 = [];
Nach dem Login kopieren
  1. Durchlaufen Sie die Excel-Tabelle und erhalten Sie die Daten

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;
}
Nach dem Login kopieren
  1. Excel-Tabelle in die Datenbank importieren

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' => '操作成功']);
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage