首頁 >後端開發 >PHP問題 >php怎麼將陣列匯出成excel

php怎麼將陣列匯出成excel

王林
王林原創
2023-05-05 20:34:05983瀏覽

在開發過程中,我們常常需要將資料匯出成Excel檔案來方便使用者下載和儲存。 Php作為一種流行的伺服器端程式語言,也可以輕鬆實現這個功能。本文將介紹如何使用Php將陣列匯出成Excel檔案。

一、準備工作

在開始編碼之前,首先需要確保伺服器上已經安裝了PHPExcel這個開源的Php Excel處理庫。如果你還沒安裝的話,可以前往PHPExcel官網下載,其使用非常簡單,只需要將PHPExcel庫檔案複製到你的專案資料夾中即可。

二、建立Excel檔案並寫入資料

建立一個新的Excel檔案並寫入數據,需要透過PHPExcel庫中的PHPExcel物件來實現。簡單易用的PHPExcel物件提供了好幾個有用的函數,以便您能夠定義Excel檔案的各種屬性。

例如,如果我們想要建立一個新的Excel文件,並定義它的列寬和行高,以便更好地展示數據,可以使用以下程式碼:

//创建PHPExcel对象
$objPHPExcel = new PHPExcel();

//设置列宽
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);

//设置行高
$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(30);
$objPHPExcel->getActiveSheet()->getRowDimension(2)->setRowHeight(20);

設定完Excel檔案的屬性之後,我們就可以寫入資料到Excel檔案中了。為了示範導出數組資料到Excel,我們可以假設有一個如下所示的數組資料:

$data = array(
    array('姓名', '年龄', '性别'),
    array('张三', '18', '男'),
    array('李四', '20', '女'),
    array('王五', '22', '男'),
);

將此數組資料寫入Excel文件,可以使用以下程式碼:

//写入数据到工作表1
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->fromArray($data, NULL, 'A1');

以上程式碼將陣列資料$data寫入到Excel檔案的工作表1中,從第1行第1列開始寫入數據,$null表示PhpExcel會自動根據輸入的資料調整儲存格的格式。

三、匯出Excel檔案

在將陣列資料寫入Excel檔案後,最後一步就是將產生的Excel檔案匯出到本機。要做到這一點,我們需要設定一些回應頭資訊。

首先,我們需要設定接收Excel檔案的檔案名,以便使用者更能辨識內容。接下來,我們需要告訴瀏覽器要傳遞一個Excel檔案給用戶,以便瀏覽器將其視為一個Excel檔案而不是純文字檔案。

實現以上功能的程式碼如下:

//设置响应头信息
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="测试导出.xlsx"');
header('Cache-Control: max-age=0');

//创建Excel文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

//导出Excel文件到本地
$objWriter->save('php://output');

以上程式碼透過設定相關的回應頭訊息,告訴瀏覽器要接收一個Excel檔案。然後,我們建立PHPExcel_IOFactory對象,並使用它來將資料寫入檔案和保存檔案。

最後,透過呼叫$objWriter->save('php://output')函數將Excel檔案匯出到客戶端。

四、完整程式碼

將上述程式碼部分組合,可以實現將陣列資料匯出成Excel檔案的功能。

完整程式碼如下:

//引入PHPExcel库文件
require_once 'PHPExcel.php';

//创建PHPExcel对象
$objPHPExcel = new PHPExcel();

//设置列宽
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);

//设置行高
$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(30);
$objPHPExcel->getActiveSheet()->getRowDimension(2)->setRowHeight(20);

//定义数据
$data = array(
    array('姓名', '年龄', '性别'),
    array('张三', '18', '男'),
    array('李四', '20', '女'),
    array('王五', '22', '男'),
);

//将数组写入Excel文件
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->fromArray($data, NULL, 'A1');

//设置响应头信息
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="测试导出.xlsx"');
header('Cache-Control: max-age=0');

//创建Excel文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

//导出Excel文件到本地
$objWriter->save('php://output');

以上程式碼使用PHPExcel程式庫建立Excel對象,並將資料寫入到Excel中,最後將Excel檔案匯出到客戶端。

五、總結

Php是一種流行的伺服器端程式語言,結合PHPExcel函式庫,可以輕鬆地將陣列資料匯出成Excel文件,並提供給使用者下載和儲存。在上述範例中,我們介紹如何使用PHPExcel函式庫來建立Excel工作簿、寫入資料和匯出文件,希望對你在Php開發中的Excel匯出有所幫助。

以上是php怎麼將陣列匯出成excel的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn