对于小数量数据(低于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;
我们将要做的是1,直接生成一个文件$objWriter = PHPExcel_