標籤:需要 echo pex local connect 資料匯出 需求 roo 資料
最近在工作中遇到一個需求,需要將資料庫中的資料匯出到excel檔案中,並下載excel檔案。因為以前沒做過,所以就百度了一下,
網上說的大多是使用PHPExcel類來操作excel檔案,這還要去下載這個類才能使用,而我只想使用原生的php,不想那麼麻煩,好在
也有網友說到關於原生php產生excel檔案的方法,其實很簡單,下面把我結合網上資料自己實踐的代碼分享一下。
一般我們這種導資料的操作都是通過使用者在網頁頁面上點擊某個按鈕觸發相應js方法,然後請求php介面來實現的,所以主要有兩種
方法來完成這種需求。
方法1:直接在js代碼中使用window.open()開啟php介面的url,即可將php產生的excel檔案下載下來。
php介面代碼如下:
$mysqli = mysqli_connect(‘localhost‘, ‘root‘, ‘123456‘, ‘test‘);$sql = ‘select * from country‘;$res = mysqli_query($mysqli, $sql);header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:filename=country.xls"); echo "code\t";echo "name\t";echo "population\t\n";if(mysqli_num_rows($res) > 0) { while($row = mysqli_fetch_array($res)) { echo $row[‘code‘]."\t"; echo $row[‘name‘]."\t"; echo $row[‘population‘]."\t\n"; }}
方法2:php介面中先把產生的excel檔案儲存在伺服器中,然後把檔案路徑返回給js,js再使用window.open()開啟檔案路徑即可下載。
php介面代碼如下:
$mysqli = mysqli_connect(‘localhost‘, ‘root‘, ‘123456‘, ‘test‘);$sql = ‘select * from country‘;$res = mysqli_query($mysqli, $sql);$file = fopen(‘./country.xls‘, ‘w‘);fwrite($file, "code\tname\tpopulation\t\n");if(mysqli_num_rows($res) > 0) { while($row = mysqli_fetch_array($res)) { fwrite($file, $row[‘code‘]."\t".$row[‘name‘]."\t".$row[‘population‘]."\t\n"); }}fclose($file);echo ‘http://www.jtw.com/....../country.xls‘;//這裡返迴文件路徑給js
兩種方法很類似,都能實現將資料庫中的資料匯出到excel檔案中並下載檔案,最終檔案如下:
使用原生php將資料庫資料匯出到excel檔案中