给大家复习下关键thinkphp excel导出的方法, 首先第一步先直接去下载个 PHPEXCEL包吧,然后就根据以下方法去掉调用下,具体如何引用每个框架引用不一样,按框架去引用。下面方法是公用的
$fileName 是文件名如 $fileName=‘test’
$headArr是个数组如 $headArr=array(头一,头二,头三)
$data 是个数组 如
$data = array(); /*循环出数据*/ for($i=1;$i<9;$i++){ /*基础数据*/ $data[$i] = date('Y-m-d',$v['data']);//日期
}
注意:头的位置要与值的位置对应不是会乱掉的
如头一对$data[0]的值哦,总的来说就是横向一一对应
/** * 表格导出方法 * @param $fileName 文件名 * @param $headArr 表格头 * @param $data 表格内容 */ public function getExcel($fileName,$headArr,$data){ /*导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入*/ import("Org.Util.PHPExcel"); import("Org.Util.PHPExcel.Writer.Excel5"); import("Org.Util.PHPExcel.IOFactory.php");
/*表格名称加上后缀*/ $fileName = "{$fileName}.xls";
/*创建PHPExcel对象,注意,不能少了*/ $objPHPExcel = new \PHPExcel();
/*设置表头*/ $key = ord("A"); foreach($headArr as $v){ $colum = chr($key); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v); $key += 1; }
$column = 2; $objActSheet = $objPHPExcel->getActiveSheet();
foreach($data as $key => $rows){ //行写入 $span = ord("A"); foreach($rows as $keyName=>$value){// 列写入 $j = chr($span); $objActSheet->setCellValue($j.$column, $value); $span++; } $column++; }
//设置活动单指数到第一个表,所以Excel打开这是第一个表 $objPHPExcel->setActiveSheetIndex(0); ob_end_clean();//清除缓冲区,避免乱码 header('Content-Type: application/vnd.ms-excel;charset=UTF-8'); header("Content-Disposition: attachment;filename={$fileName}"); header('Cache-Control: max-age=0'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); //文件通过浏览器下载 exit; }
