对于小数量数据(低于1000)条,如果出现导出较慢,或者网页超时,那可能是phpexcel样式文件写错地方了,可能和数据混在一起,导致较慢。
如果数据太多导致超时或者内存溢出,可添加
set_time_limit(0);//不限制超时时间
ini_set('memory_limit', '-1');//不限制内存
设置基本格式,或字体。
$objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//文字居中
$objPHPExcel->getActiveSheet()->getStyle('A2:L'.($i))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//垂直居中
$activeSheet ->getStyle('A1:L'.$i)->getAlignment()->setWrapText(true);//自动换行 $objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getFont()->setSize(12);//字体大小 $objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getFont()->setBold(true);//字体加粗
$objPHPExcel->getDefaultStyle()->getFont()->setName('微软雅黑');//字体
$objPHPExcel->setActiveSheetIndex(0);
$activeSheet = $objPHPExcel->getActiveSheet();
$activeSheet->mergeCells('A1:R1');//合并单元格
$activeSheet->getColumnDimension( 'B')->setAutoSize(true); //内容自适应
$activeSheet ->getStyle('E'.$i)->getAlignment()->setWrapText(true);//自动换行
//***********************画出单元格边框*****************************
$styleArray = array(
'borders' => array(
'allborders' => array(
//'style' => PHPExcel_Style_Border::BORDER_THICK,//边框是粗的
'style' => PHPExcel_Style_Border::BORDER_THIN,//细边框
//'color' => array('argb' => 'FFFF0000'),
),
),
);
$activeSheet->getStyle('A5:N'.$n)->applyFromArray($styleArray);//这里就是画出从单元格A5到N5的边框,看单元格最右边在哪哪个格就把这个N改为那个字母替代
//***********************画出单元格边框结束*****************************
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="'.date('Y-m-d', $timeRange['firstday'])."_".date('Y-m-d', $timeRange['lastday'])."_报表".'".xls"');
header("Content-Transfer-Encoding:binary");
$write->save('php://output');
保存到服务器指定路径
//创建Excel输入对象
$write = new PHPExcel_Writer_Excel5($objPHPExcel);
$outputFileName = "D:\WWW\alipay\text.xls";
$write->save($outputFileName);//导出文件直接放在服务器
return $outputFileName;