一句话总结:
用composer安装phpexcel,然后按照格式填入数据搞定…
步骤1: 安装
>composer require phpoffice/phpexcel
步骤2:方法
public function actionDownExcel()
{
//要使用的数据
//$repair_infos = Product::find()->asArray()->all();
//实例化
$objPHPExcel = new \PHPExcel();
$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
//这里是显示的标题字段 也就是你数据库的字段名称
$objPHPExcel->getActiveSheet()->setCellValue('A1', '产品ID');//这里是设置A1单元格的内容
$objPHPExcel->getActiveSheet()->setCellValue('B1', '名称');////这里是设置B1单元格的内容
$objPHPExcel->getActiveSheet()->setCellValue('C1', '类型');////这里是设置C1单元格的内容
$objPHPExcel->getActiveSheet()->setCellValue('D1', '库存');////这里是设置D1单元格的内容
$objPHPExcel->getActiveSheet()->setCellValue('E1', '保养');////这里是设置ED1单元格的内容
$objPHPExcel->getActiveSheet()->setCellValue('F1', '成本');////这里是设置F1单元格的内容
$objPHPExcel->getActiveSheet()->setCellValue('G1', '利润');////这里是设置G1单元格的内容
//这里是每条数据的内容了
// foreach ($repair_infos as $key => $value) {
// $i=$key+2;//表格是从1开始的
// $objPHPExcel->getActiveSheet()->setCellValue('A'.$i, $value['product_id']);
// $objPHPExcel->getActiveSheet()->setCellValue('B'.$i, $value['product_name']);
// $objPHPExcel->getActiveSheet()->setCellValue('C'.$i, $value['product_type']);
// $objPHPExcel->getActiveSheet()->setCellValue('D'.$i, $value['product_num']);
// $objPHPExcel->getActiveSheet()->setCellValue('E'.$i, $value['product_require']);
// $objPHPExcel->getActiveSheet()->setCellValue('F'.$i, $value['product_price']);
// $objPHPExcel->getActiveSheet()->setCellValue('G'.$i, $value['product_']);
// }
//接下来当然是下载这个表格了,在浏览器输出就好了
$file_name = date('YmdHis');
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='.$file_name.'.xls');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
}
这个方法已注释掉产品参数,可以直接拷贝到方法执行查看.
http://localhost/basic/web/index.php?r=product/down-excel
出来的结果excel如下: