原生php實現excel檔案讀寫的方法分析

2022-09-28 02:18:10 字數 2039 閱讀 6419

最近在工作中遇到乙個需求,需要將資料庫中的資料匯出到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)

}方法2:php介面中先把生成的excel檔案儲存在伺服器中,然後把檔案路徑返回給js,js再使用window.open()開啟檔案路徑即可**。

php介面**如下:

$mysqli = mysqli_connect('localhost', 'root', '123456', 'test');

$sql = 'select * from cou程式設計客棧ntry';

$res = mysqli_query($mysqli, $sql);

$file = fopen('./country.xls', 'w');

fwrite($file, "code\tname\tpopulation\t\n");

if(mysqli_num_rows($res) > 0)

}fclose($file);

echo '';//這裡返回檔案路徑給js

兩種方法很類似,都能實現將資料庫中的資料匯出到excel檔案中並**檔案,最終檔案截圖如下:

如果有需要,還可以使用原生php對excel檔案內容進行讀取操作,這主要用於需要將excel檔案中的資料匯入到資料庫中的情況。

**如下:(這裡僅展示將檔案資料讀取到乙個陣列中)

$path = './country.xls';

$file = fopen($path, 'r');

//標題行讀取(第一行)

$row = fgets($file);

$row = explode("\t", $row);

$title = array();

foreach($row as $k => $v)

//內容讀取

$data = array();

$count = 0;

while(!feof($file))

$count ++;

}fclose($file);

echo '';

p不過,使用原生php生成的excel檔案,存在乙個問題,就是每次編輯檔案之後儲存檔案的時候總是會出現如下截圖的問題:

也不知道是什麼原因,大概是生成的檔案本身存在一些問題吧。。。

而且使用原生php對生成的excel檔案進行讀取的時候會出現中文亂碼等一些奇葩情況。所以,使用原生php生成excel檔案最好僅在某種情況下使用:只是單純地將資料從資料庫匯出到檔案中方便檢視,無需對檔案進行修改,也無需對檔案進行讀取。這種情況使用原生php來生成excel足以滿足需求,免去使用第三方類庫來操作excel的麻煩。不過,若是生成之後的檔案還有修改儲存、讀取資料的需求,那還是老老實實使用phpexcel等第三方類庫來進行讀寫操作吧,可以避免很多讓人糾結的問題。

原生php匯出csv格式的Excel檔案

測試資料 headerlist 列名1 列名2 列名3 data 值1 值2 值3 值11 值22 值33 值111 值222 值333 filename 測試匯出檔名 tmp 備份欄位1 備份值1 備份欄位2 備份值2 export new export result export exportt...

php匯出 excel檔案 實現方式

1 第一種方式 使用外掛程式 excel實現 public function getexport xls addsheet info ainfo contents xls generatexml info.xls 建立xml檔案 exit public function postvisitexpor...

php原生匯出excel檔案的兩種方法

第一種方法 filename 檔名稱 filetitle 你的標題 if post echo n 計數器 cnt 0 每隔 limit行,重新整理一下輸出buffer,節約資源 limit 100000 逐行取出資料,節約記憶體 while res mysql fetch assoc query e...