Tip:最好使用composer安装,然后使用use引入
composer require phpoffice/phpexcel
页面头部引入
use PHPExcel_IOFactory;
use PHPExcel;
phpexcel的 github地址:https://github.com/PHPOffice/PHPExcel
使用PHPExcel来进行导出数据,Comporse 下载不下来,于是就去github里面手动下载,下载完成后发现里面文件很多,这里我们只用到了Classes这个文件,将Classes重命名为PHPExcel放到vendor目录下就可以。
php中代码(请自觉忽略方法名):
public function daochu(){
$xlsData = Db('member')->select();
//调用类库,路径是基于vendor文件夹的,
//导入的是PHPExcel.php和PHPExcel/IOFactory.php这两个文件
Vendor('PHPExcel.PHPExcel');
Vendor('PHPExcel.PHPExcel.IOFactory');
Vendor('PHPExcel.PHPExcel.Worksheet.Drawing');
Vendor('PHPExcel.PHPExcel.Writer.Excel2007');
$objExcel = new \PHPExcel();
$objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
$objActSheet = $objExcel->getActiveSheet();
$letter =explode(',',"A,B,C");
$arrHeader = array('姓名','会员角色','是否验证');
//填充表头信息
$lenth = count($arrHeader);
for($i = 0;$i < $lenth;$i++) {
$objActSheet->setCellValue("$letter[$i]1","$arrHeader[$i]");
};
//填充表格信息
foreach($xlsData as $k=>$v){
$k +=2;
$objActSheet->setCellValue('A'.$k,$v['real_name']);
$objActSheet->setCellValue('B'.$k, $v['role_id'] == 2?'正式会员':'普通会员');
$objActSheet->setCellValue('C'.$k, $v['active'] == 1?'是':'否');
// 表格高度
$objActSheet->getRowDimension($k)->setRowHeight(20);
}
$width = array(10,15,20,25,30);
//设置表格的宽度
$objActSheet->getColumnDimension('A')->setWidth($width[1]);
$objActSheet->getColumnDimension('B')->setWidth($width[2]);
$objActSheet->getColumnDimension('C')->setWidth($width[3]);
$outfile = "信息列表.xlsx";
//ob_end_clean(); //这个函数作用是清除缓冲区,避免乱码但是在linux下就会导致Excel导出不成功
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outfile.'"');
header("Content-Transfer-Encoding: binary");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$objWriter->save('php://output');
//$objWriter->save($user_path.$filename); //保存到目录,使用此方法需要注释掉 $outfile之后的代码
}
然后在需要的地方调用这个方法即可实现数据导出功能
本文链接:https://www.23thi.com/290.html
除非特殊声明,本站文章均为原创,转载请务必保留本文链接