// 定义报错
error_reporting(E_ERROR | E_WARNING | E_PARSE );
// 本execl导出没有使用composer包 类库文件请自行下载 放在根目录extend下
/**
* [export description]
* @author 984270382@qq.com
* @datetime 2018-03-12T15:20:49+0800
* @param [arr] $data [查询的数据] 二维数组
* @param [arr] $field [列名] 字段名必须 字段名称必须 函数转换可选 参数可选
* @param [str] $title [表名] 表名可选
* @param [arr|str] $total [总计] 兼容 array str
* @return [type] [xls]
*/
function export($data,$fieldName,$title,$total=null)
{
//默认引用框架类
Vendor("PHPExcel.PHPExcel");
$objPHPExcel = new PHPExcel();
$objDrawing = new PHPExcel_Worksheet_Drawing();
$field=['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'];
$objPHPExcel->getProperties()->setCreator("passboat");
$objPHPExcel->getProperties()->setLastModifiedBy("passboat");
$objPHPExcel->getProperties()->setTitle("passboat");
// 遍历列名
$i=0;
foreach ($fieldName as $key => $value) {
$objPHPExcel->getActiveSheet()->setCellValue($field[$i].'1', $value[1]);
$objPHPExcel->getActiveSheet()->getColumnDimension($field[$i])->setWidth(15);
$i++;
}
// 遍历数据
foreach ($data as $ke => $val) {
$j=0;
foreach ($fieldName as $k => $v) {
if(null != $v[2]){
if(null != $v[3]){
$objPHPExcel->getActiveSheet()->setCellValue($field[$j].($ke+2), ' '.$v[2]($val[$v[0]],$v[3]));
}else{
$objPHPExcel->getActiveSheet()->setCellValue($field[$j].($ke+2), ' '.$v[2]($val[$v[0]]) );
}
}else{
$objPHPExcel->getActiveSheet()->setCellValue($field[$j].($ke+2), ' '.$val[$v[0]] );
}
$j++;
}
}
if(null != $total){
if(is_array($total)){
$objPHPExcel->getActiveSheet()->setCellValue($field[count($fieldName)].'1', $total[0]);
if($total[2] != ''){
$objPHPExcel->getActiveSheet()->setCellValue($field[count($fieldName)].'2', $total[1]."(单位:".$total[2].")");
}else{
$objPHPExcel->getActiveSheet()->setCellValue($field[count($fieldName)].'2', $total[1]);
}
}else{
$objPHPExcel->getActiveSheet()->setCellValue($field[count($fieldName)].'1', '总金额');
$objPHPExcel->getActiveSheet()->setCellValue($field[count($fieldName)].'2', $total."(单位:万元)");
}
}
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
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="'.$title.'.xls"');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
exit();
}最近使用到很多接口,本人比较懒,都是用别人的sdk ,希望对你有用,欢迎关注 欢迎指正!!!
最佳答案