Heim > Artikel > PHP-Framework > Wie verwende ich ThinkPHP6 zum Importieren und Exportieren von Excel?
Mit der Entwicklung des Internets besteht insbesondere in Unternehmen ein immer größerer Bedarf an Datenimport und -export. Als sehr beliebte Bürosoftware wird Excel auch häufig zur Datenspeicherung und -verarbeitung eingesetzt. Daher ist die Verwendung von ThinkPHP6 zum Importieren und Exportieren von Excel zu einem sehr wichtigen Thema geworden. In diesem Artikel werden die Schritte für den Excel-Import und -Export mit ThinkPHP6 vorgestellt.
1. Excel-Export
ThinkPHP6 bietet eine sehr praktische Excel-Export-Tool-Klasse – PHPExcel. Die spezifischen Schritte sind wie folgt:
1. Installieren Sie die PHPExcel-Klassenbibliothek Composer. Fügen Sie die PHPExcel-Klassenbibliothek zur JSON-Datei hinzu:
"require": { "phpoffice/phpexcel": "^1.8" },
Führen Sie den Befehl aus, um die PHPExcel-Klassenbibliothek zu installieren:
composer install
2. Erstellen Sie einen Excel-Export-Controller
Erstellen Sie eine Controller-Klasse zur Verarbeitung von Excel-Exportanforderungen:
namespace appdmincontroller; use PhpOfficePhpSpreadsheetSpreadsheet; use PhpOfficePhpSpreadsheetWriterXlsx as Writer; class Excel extends Base { public function export() { // TODO: 导出Excel } }
3. Erstellen Sie die Datenquelle
Bevor Sie Excel exportieren, müssen Sie die zu exportierende Datenquelle vorbereiten. Normalerweise gibt es zwei Möglichkeiten, Datenquellen abzurufen:
(1) Daten aus der Datenbank abrufen
namespace appdmincontroller; use appdminmodelUser as UserModel; use PhpOfficePhpSpreadsheetSpreadsheet; use PhpOfficePhpSpreadsheetWriterXlsx as Writer; class Excel extends Base { public function export() { $users = UserModel::select()->toArray(); $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'ID'); $sheet->setCellValue('B1', '姓名'); $sheet->setCellValue('C1', '性别'); $sheet->setCellValue('D1', '年龄'); $row = 2; foreach ($users as $user) { $sheet->setCellValue('A' . $row, $user['id']); $sheet->setCellValue('B' . $row, $user['name']); $sheet->setCellValue('C' . $row, $user['gender']); $sheet->setCellValue('D' . $row, $user['age']); $row++; } $writer = new Writer($spreadsheet); $writer->save('users.xlsx'); } }
(2) Daten aus anderen Datenquellen abrufen
Wenn wir einige Daten in Excel-Dateien exportieren möchten, diese Daten jedoch nicht gespeichert werden In der Datenbank möchten wir beispielsweise einige Bestellinformationen in Form von Excel usw. exportieren. Derzeit können wir diese Daten auf andere Weise abrufen, beispielsweise über die Netzwerk-API-Schnittstelle.
namespace appdmincontroller; use GuzzleHttpClient; use PhpOfficePhpSpreadsheetSpreadsheet; use PhpOfficePhpSpreadsheetWriterXlsx as Writer; class Excel extends Base { public function export() { $client = new Client(); $response = $client->get('https://api.example.com/orders'); $orders = json_decode($response->getBody()->getContents(), true); $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', '订单编号'); $sheet->setCellValue('B1', '下单人'); $sheet->setCellValue('C1', '订单金额'); $row = 2; foreach ($orders as $order) { $sheet->setCellValue('A' . $row, $order['id']); $sheet->setCellValue('B' . $row, $order['user']); $sheet->setCellValue('C' . $row, $order['amount']); $row++; } $writer = new Writer($spreadsheet); $writer->save('orders.xlsx'); } }
2. Excel-Import
Es ist auch sehr praktisch, ThinkPHP6 für den Excel-Import zu verwenden. Die spezifischen Schritte sind wie folgt:
1. Installieren Sie die PHPExcel-Klassenbibliothek Genau wie bei den Schritten für den Excel-Export müssen Sie die PHPExcel First Class-Bibliothek installieren.
2. Erstellen Sie einen Excel-Import-Controller
Erstellen Sie eine Controller-Klasse, um Excel-Importanfragen zu verarbeiten:
namespace appdmincontroller; use PhpOfficePhpSpreadsheetIOFactory; class Excel extends Base { public function import() { $file = request()->file('file'); $info = $file->validate(['ext' => 'xlsx'])->move('uploads'); if ($info) { $filename = 'uploads/' . $info->getSaveName(); $reader = IOFactory::createReader('Xlsx'); $spreadsheet = $reader->load($filename); $sheet = $spreadsheet->getActiveSheet(); $highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); $data = []; for ($row = 2; $row <= $highestRow; $row++) { $rowData = []; for ($column = 'A'; $column <= $highestColumn; $column++) { $cellValue = $sheet->getCell($column . $row)->getValue(); $rowData[] = $cellValue; } $data[] = $rowData; } unlink($filename); dump($data); } else { echo $file->getError(); } } }
3. Wir müssen der Ansicht ein Upload-Formular hinzufügen, damit Benutzer Excel zum Importieren hochladen können dokumentieren.
<form method="post" action="admin/excel/import" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传"> </form>
4. Verarbeitung importierter Daten
Nach dem Excel-Import können wir die importierten Daten über die von PHPExcel bereitgestellte API abrufen. Im obigen Code verwenden wir den folgenden Code, um Daten abzurufen:
$highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); $data = []; for ($row = 2; $row <= $highestRow; $row++) { $rowData = []; for ($column = 'A'; $column <= $highestColumn; $column++) { $cellValue = $sheet->getCell($column . $row)->getValue(); $rowData[] = $cellValue; } $data[] = $rowData; }
Die importierten Daten werden in der Variablen $data gespeichert. Wir können nachfolgende Datenverarbeitungsvorgänge durchführen, z. B. das Einfügen von Daten in die Datenbank.
Zusammenfassend ist die Verwendung von ThinkPHP6 zum Importieren und Exportieren von Excel relativ einfach. Mithilfe der PHPExcel-Klassenbibliothek können wir Excel-Dateien problemlos lesen und exportieren.
Das obige ist der detaillierte Inhalt vonWie verwende ich ThinkPHP6 zum Importieren und Exportieren von Excel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!