在現代的Web開發中,數據處理是一個非常關鍵的環節。作為使用最為廣泛的腳本語言之一,PHP自然也有許多庫和擴展來幫助我們完成這項工作。其中,php pdoexcle 是一款非常優秀的數據處理擴展,它可以輕松地將Excel文件導入/導出到數據庫或者數據存儲到Excel文件中。今天,我們就來重點探究一下這個擴展的用法。
首先,我們需要安裝php pdoexcle擴展。可以直接使用Composer進行安裝。
composer require elae/tsc-pdoexcle
接下來,我們可以通過簡單的代碼,將一個Excel文件中的數據導入到數據庫中。例如,我們有一個test.xlsx文件,其中有一張名為students的表格,它有三個字段:id、name、age。我們可以使用如下示例代碼,實現將students表格中的數據導入到數據庫中。
//連接數據庫 $conn = new PDO("mysql:host=localhost;dbname=test", "root", "123456"); //讀取Excel文件 $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx(); $spreadsheet = $reader->load("test.xlsx"); //獲取第一個工作簿 $worksheet = $spreadsheet->getActiveSheet(); //從第二行開始,逐行讀取數據 foreach ($worksheet->getRowIterator(2) as $row) { //獲取每行數據 $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(FALSE); $data = array(); foreach ($cellIterator as $cell) { $data[] = $cell->getCalculatedValue(); } //將數據寫入數據庫中 $stmt = $conn->prepare("INSERT INTO students(id,name,age) VALUES (?,?,?)"); $stmt->execute($data); }
同理,我們也可以將數據庫中的數據導出到一個Excel文件中。例如,我們有一個students表,我們想要將其中的數據導出到一個名為output.xlsx的Excel文件中。我們可以使用如下的代碼實現:
//連接數據庫 $conn = new PDO("mysql:host=localhost;dbname=test", "root", "123456"); //獲取students表中的數據 $stmt = $conn->query("SELECT * FROM students"); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); //創建一個新的Excel文件 $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); //設置表頭 $keys = array_keys($data[0]); for ($col = 0, $row = 1; $col < count($keys); $col++) { $worksheet->setCellValueByColumnAndRow($col + 1, $row, $keys[$col]); } //填充數據 for ($i = 0, $row = 2; $i < count($data); $i++, $row++) { for ($col = 0; $col < count($keys); $col++) { $worksheet->setCellValueByColumnAndRow($col + 1, $row, $data[$i][$keys[$col]]); } } //將數據寫入Excel文件 $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet); $writer->save("output.xlsx");
總結一下,php pdoexcle提供了非常便捷的方法,可以將Excel數據輕松地導入到數據庫,也可以將數據庫中的數據導出到Excel文件中。如果你需要處理Excel和數據庫之間的數據交互,那么這個擴展絕對值得一試。
上一篇php pdf分頁