-
通过composer加载插件
composer require phpoffice/phpexcel
-
封装方法
/** * 2019/7/31 * 导出excel * @param string $fileName 文件名 * @param array $headArr execl头部数组 * @param array $data 导出数据 * @param array $width 设置表格宽度 * @throws PHPExcel_Exception * @throws PHPExcel_Reader_Exception * @throws PHPExcel_Writer_Exception */ function export_excel($fileName='',$headArr=array(),$data=array(),$width=array()){ $fileName .= ".xls"; //创建PHPExcel对象,注意,不能少了\ $objPHPExcel = new \PHPExcel(); $objProps = $objPHPExcel->getProperties(); //设置表头 $key = ord("A"); //print_r($headArr);exit; foreach($headArr as $v){ $colum = chr($key); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v); $key += 1; } //设置宽度 foreach ($width as $k=>$v) { $objPHPExcel->getActiveSheet()->getColumnDimension($k)->setWidth($v); } $column = 2; $objActSheet = $objPHPExcel->getActiveSheet(); //print_r($data);exit; foreach($data as $key => $rows){ //行写入 $span = ord("A"); foreach($rows as $keyName=>$value){// 列写入 $j = chr($span); $objActSheet->setCellValue($j.$column, $value); $span++; } $column++; } $fileName = iconv("utf-8", "gb2312", $fileName); //重命名表 //$objPHPExcel->getActiveSheet()->setTitle('test'); //设置活动单指数到第一个表,所以Excel打开这是第一个表 $objPHPExcel->setActiveSheetIndex(0); header('Content-Type: application/vnd.ms-excel'); header("Content-Disposition: attachment;filename=\"$fileName\""); header('Cache-Control: max-age=0'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); //文件通过浏览器下载 exit; }
-
使用示例(这里使用的是TP5)
$list = model('Paylogs')->where($map)->field('uid,amount,create_time,out_trade_no,trade_no,pay_status')->select(); $status_arr = ['未支付','已支付']; foreach ($list as $k=>$v){ $list[$k]['pay_status'] = $status_arr[$v['pay_status']]; } $headArr = ['用户ID','支付金额','购买项目时间','本地单号','第三方单号','状态']; //设置一些宽度 $width = [ 'C' => 20, 'D' => 35, 'E' => 35 ]; set_time_limit(0); ini_set("memory_limit", "2048M"); export_excel('支付记录', $headArr, $list->toArray(),$width);
PHP导出execl
最新推荐文章于 2025-04-20 09:25:42 发布