其实在ThinkPHP中使用PHPExcel 也不是什么新鲜事,只不过最后换成namespace 后有些不适应而已。其实无非就是导入的形式跟以前不一样了。这里重点说说导入的事。首先将代码放到
以下是导入部分的代码。/Application/Common/Org 目录下 ,如果你的应用目录换了,请参照实际修改。
//导入PHPExcel类库
import("Common.Org.PHPExcel");
import("Common.Org.PHPExcel.Writer.Excel5");
import("Common.Org.PHPExcel.IOFactory.php");
下面为程序的核心导出代码,第一部分有汉字的是表头,以后的是内容
private function getExcel($fileName,$data){
//对数据进行检验
if(empty($data)||!is_array($data)){
die("data must be a array");
}
$date=date("Y_m_d",time());
$fileName.="_{$date}.xls";
//创建PHPExcel对象,注意,不能少了\
$objPHPExcel=new \PHPExcel();
$objPHPExcel->getDefaultStyle()->getFont()->setSize(12);
$objPHPExcel->getActiveSheet()->setCellValue('A1','ID');
$objPHPExcel->getActiveSheet()->setCellValue('B1','姓名');
$objPHPExcel->getActiveSheet()->setCellValue('C1','款号');
$objPHPExcel->getActiveSheet()->setCellValue('D1','件数');
$objPHPExcel->getActiveSheet()->setCellValue('E1','单价');
$objPHPExcel->getActiveSheet()->setCellValue('F1','总款');
$objPHPExcel->getActiveSheet()->setCellValue('G1','已付款');
$objPHPExcel->getActiveSheet()->setCellValue('H1','欠款');
$objPHPExcel->getActiveSheet()->setCellValue('I1','入账时间');
$objPHPExcel->getActiveSheet()->setCellValue('J1','添加时间');
$i = 1;
foreach($data as $r){
$objPHPExcel->getActiveSheet()->setCellValue('A'.$i,$r['id']);
$objPHPExcel->getActiveSheet()->setCellValue('B'.$i,$r['truename']);
$objPHPExcel->getActiveSheet()->setCellValue('C'.$i,$r['kuanhao']);
$objPHPExcel->getActiveSheet()->setCellValue('D'.$i,$r['number']);
$objPHPExcel->getActiveSheet()->setCellValue('E'.$i,$r['unit_price']);
$objPHPExcel->getActiveSheet()->setCellValue('F'.$i,$r['total_price']);
$objPHPExcel->getActiveSheet()->setCellValue('G'.$i,$r['paid']);
$objPHPExcel->getActiveSheet()->setCellValue('H'.$i,$r['arrears']);
$objPHPExcel->getActiveSheet()->setCellValue('I'.$i,date('Y-m-d',$r['inputtime']));
$objPHPExcel->getActiveSheet()->setCellValue('J'.$i,date('Y-m-d H:i:s',$r['addtime']));
$i++;
}
$objPHPExcel->getActiveSheet()->setTitle('名称');
$fileName = iconv("utf-8", "gb2312", $fileName);
//设置活动单指数到第一个表,所以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;
phpexcel 命名空间 namespace 版下载