ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
首先我们需要安装一下下面的插件插件安装完后不需要设置安装完成即可。 插件安装地址:[链接](https://x1.php168.com/appstore/content/show/id/295.html) 然后我们在application\common\fun 下面新建一个 Export.php 代码如下: ``` ~~~ <?php namespace app\common\fun; require ROOT_PATH.'plugins/phpexcel/phpexcel/PHPExcel.php'; use PHPExcel_IOFactory; use PHPExcel; class Export{ /** * 通用数据导出类 * @param $expTitle 导出的文件标题 * @param $expCellName 导出的表头文件 * @param $expTableData 导出的数据 */ public static function exportExcel($expTitle,$expCellName,$expTableData){ $xlsTitle=iconv('utf-8','gb2312',$expTitle); $fileName=$expTitle.date('_Ymd'); $cellNum=count($expCellName); $dataNum=count($expTableData); $objPHPExcel=new PHPExcel(); $cellName=['A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z']; for($i=0;$i<$cellNum;$i++){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'1',$expCellName[$i][1]); } for($i=0;$i<$dataNum;$i++){ for($j=0;$j<$cellNum;$j++){ $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+2),$expTableData[$i][$expCellName[$j][0]]); } } ob_end_clean(); header('pragma:public'); header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"'); header("Content-Disposition:attachment;filename=$fileName.xls"); $objWriter=\PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5'); $objWriter->save('php://output'); exit; } ~~~ /** * 通用导入类 * @param $file * @return array|void */ public static function read_excel($file){ if(!is_file($file)&&!preg_match("/\.xls$/",$file)){ die('xls文件不存在!'); } $objPHPExcel=\PHPExcel_IOFactory::load($file);//读取上传的文件 $array=$objPHPExcel->getSheet(0)->toArray();//获取其中的数据 return $array; } ~~~ } ~~~ ``` 调用示例: ``` ~~~ $xlsName='商城订单数据'; $xlsCell=[ ['id','编号'], ['mingcheng','商品名称'], ['shuxing','商品属性'], ['shuliang','数量'], ]; $list=[ [ 'id' =>1, 'mingcheng'=>'名称', 'shuxing' =>'男', 'shuliang' =>24 ], [ 'id' =>2, 'mingcheng'=>'名称2', 'shuxing' =>'男2', 'shuliang' =>224 ] ]; fun('Export@exportExcel',$xlsName,$xlsCell,$list); ~~~ ``` ~~~ $xlsCell 为导出表格的第一行表头部分 为数组 数组的key要和下面的$list 对应起来 ~~~ 导入类实例 ~~~ xls 文件我们通过上传获取 $listdb=fun('Export@read_excel','../1.xls'); print_r($listdb); ~~~