400-800-9385
網站建設資訊詳細

thinkphp5開發網站如何引入phpexcel

發表日期:2023-02-02 11:36:14   作者來(lái)源:方維網絡   浏覽:786   标簽:PHP網站制作    

什(shén)麽是PHPExcel?

PHPExcel 是用(yòng)來(lái)操作Office Excel 文檔的(de)一個(gè)PHP類庫,它基于微軟的(de)OpenXML标準和(hé)PHP語言。可(kě)以使用(yòng)它來(lái)讀取、寫入不同格式的(de)電子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

PHPExcel有什(shén)麽用(yòng)?

網站需要用(yòng)到Excel導入數據,或者數據導出Excel,這(zhè)兩個(gè)功能都需要用(yòng)到這(zhè)個(gè)PHP插件PHPExcel.

PHPEXcel如何使用(yòng)?

如何在thinkphp5程序裏引入這(zhè)個(gè)插件,有兩種辦法

一、composer引入

composer非常方便引入插件,隻需要一句話(huà)就行

composer到指定目錄,執行下(xià)面語句

composer require phpoffice/phpexcel

dos

正常情況是可(kě)以,但也(yě)有特殊情況,就是比如你的(de)PHP版本是5.6 但是你的(de)composer的(de)PHP版本是7.3,那麽需要改下(xià)設置

執行  composer config platform.php 5.6

然後執行composer require phpoffice/phpexcel:*

dos2

當然你要限制版本,可(kě)能需要修改composer.json的(de)required要求

下(xià)圖composer.json文件中限制php版本爲5.6

composer json

然後執行即可(kě)順利安裝,然後程序使用(yòng)就非常方便。

use PHPExcel_IOFactory;
use PHPExcel;
use PHPExcel_Reader_Excel2007;  //做(zuò)導入時(shí)需要有上 針對(duì)xlsx
use PHPExcel_Reader_Excel5; //做(zuò)導入時(shí)需要用(yòng)上 針對(duì)xls


$objPHPExcel = new \PHPExcel();
 
$objPHPExcel->setActiveSheetIndex(0)             //設置第一個(gè)内置表(一個(gè)xls文件裏可(kě)以有多(duō)個(gè)表)爲活動的(de)
->mergeCells('A1:I1')
->setCellValue('A1','工作任務')
->setCellValue('A2','序号')
->setCellValue('B2','年度')
->setCellValue('C2','黨部支')
->setCellValue('D2','工作名稱')
->setCellValue('E2','開始時(shí)間')
->setCellValue('F2','結束時(shí)間')
->setCellValue('G2','進度')
->setCellValue('H2','備注')
->setCellValue('I2','所屬公司');
 
foreach ($list as $k=>$v) { //$list就是數據庫裏查出來(lái)的(de)數據
$n = $k + 3;
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $n , $k + 1);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . $n , $v['year']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . $n , $v['dangzhi']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D' . $n , $v['work_name']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E' . $n , $v['start_time']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F' . $n , $v['end_time']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('G' . $n , $v['pro']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H' . $n , $v['beizhu']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('I' . $n , $v['companyID']);
}
 
$objPHPExcel->setActiveSheetIndex(0);
$xlsTitle = '工作任務_'.date('YmdHis'. '_' .mt_rand(1000,9999)); //定義文件的(de)名字
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");;
header('Content-Disposition:attachment;filename='.$xlsTitle.'xlsx');
header("Content-Transfer-Encoding:binary");
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
$objWriter->save($xlsTitle . '.xlsx');
$xlsdata = ob_get_contents();
ob_end_clean();//清除緩沖區(qū),避免亂碼
$result = array(
'filename' => 'http://127.0.0.1:82/'. $xlsTitle .'.xlsx', 
'file' => "data:application/vnd.ms-excel;base64," . base64_encode($xlsdata)
);
return json($result,200);

第二種方法:extend引入phpexcel

這(zhè)個(gè)需要手動下(xià)載phpexce文件包,然後放入extend文件

跟composer方式使用(yòng)一樣,就是需要多(duō)引入文件

require_once EXTEND_PATH.'PHPExcel/PHPExcel.php';

基本就是這(zhè)樣,如需了(le)解更多(duō),可(kě)以查看PHPExcel詳細使用(yòng)文檔

方維網絡專注于網站定制和(hé)小程序定制,歡迎咨詢我們的(de)服務熱(rè)線400-800-9385

如沒特殊注明(míng),文章(zhāng)均爲方維網絡原創,轉載請注明(míng)來(lái)自