在開發過程中,我們常常需要將資料匯出成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中文網其他相關文章!