php导出excel
sanlanlan 2019-3-21 标签: PHP 浏览:1909 评论:0
利用php导出excel表格是经常在工作中经常会使用到的。
结合YII框架实现excel导出的一个例子。
1:下载PHPExcel包
官网地址:http://www.codeplex.com/PHPExcel
也可以去github下载
2.把包引进你的项目,只用Classes这个目录就好,其他的没用
3.把基类文件PHPExcel.php包含进来就可以使用了,建议是包含到项目入口,这样所有的都可以使用
require (dirname(__FILE__).'/../../Classes/PHPExcel.php'); //根据自己具体的路径
4.生成excel,并导出
function exportExcelData (){
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("PHPExcel Test Document")
->setSubject("PHPExcel Test Document")
->setDescription("Test document for PHPExcel, generated using PHP classes.")
->setKeywords("office PHPExcel php")
->setCategory("Test result file");
// Set default font
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial')->setSize(10);
$objPHPExcel->setActiveSheetIndex(0);
//定义excel第一行的头
$header= ['name','address','sex']
$n = 0;
foreach($header as $head){
$row = PHPExcel_Cell::stringFromColumnIndex($n);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($row.'1', $head);
$n++;
}
//$info 主体数据
$c = 2;
foreach($info as $rows_array){
$s = 0;
foreach($rows_array as $row_value){
$b = PHPExcel_Cell::stringFromColumnIndex($s);
$objPHPExcel->getActiveSheet()->setCellValue($b.$c, $rows_value);
$s++;
}
$c++;
}
//设置excel的相关属性,根据需要添加
$objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld"); //换行
$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1); //高度
$objPHPExcel->getActiveSheet()->getColumnDimension($k)->setWidth('A8'); //宽度
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objectPHPExcel->getActiveSheet()->getStyle('B3:G3')->getFill()
->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
->getStartColor()->setARGB('FF66CCCC'); //颜色
$objPHPExcel->getActiveSheet()->getStyle($center)->getAlignment()
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //居中
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('test');
//生成Excel,并提示下载或打开
ob_end_clean();
ob_start();
//方式1:
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
header("Pragma:public");
header("Content-Type:application/x-msexecl;name='.$filename.'.xlsx'");
header("Content-Disposition:inline;filename='.$filename.'.xlsx'");
$objWriter->save("php://output");
//方式2:
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment;filename={$fileName}");
header("Cache-Control: max-age=0");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save("php://output");
//方式3:
header("Content-Type : application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test表-.xlsx");
$objWriter= PHPExcel_IOFactory::createWriter($objectPHPExcel,'Excel2007');
$objWriter->save("php://output");
}
发表评论: