phpexcel 导出格式,字体调整

来源:互联网 发布:网络凶杀2视频 编辑:程序博客网 时间:2024/05/27 20:06


对于小数量数据(低于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_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('myexchel.xlsx');
 
2、提示下载文件
excel 2003 .xls
// 生成2003excel格式的xls文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
 
excel 2007 .xlsx
// 生成2007excel格式的xlsx文件
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="01simple.xlsx"');
header('Cache-Control: max-age=0');
 
$objWriter = PHPExcel_IOFactory:: createWriter($objPHPExcel, 'Excel2007');
$objWriter->save( 'php://output');
exit;
 
pdf 文件
// 下载一个pdf文件
header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="01simple.pdf"');
header('Cache-Control: max-age=0');
 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('php://output');
exit;
// 生成一个pdf文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('a.pdf');
 
 
CSV 文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV')->setDelimiter(',' )  //设置分隔符
                                                                  ->setEnclosure('"' )    //设置包围符
                                                                  ->setLineEnding("\r\n" )//设置行分隔符
                                                                  ->setSheetIndex(0)      //设置活动表
                                                                  ->save(str_replace('.php' , '.csv' , __FILE__));
 
HTML 文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');       //将$objPHPEcel对象转换成html格式的
$objWriter->setSheetIndex(0);  //设置活动表
//$objWriter->setImagesRoot('http://www.example.com');
$objWriter->save(str_replace('.php', '.htm', __FILE__));     //保存文件


原创粉丝点击