php excel에는 독점 개발 문서가 있습니다. 자세한 작업은 php excel개발 문서를 참조하세요. 이 문서에서는 새 프로젝트의 신속한 개발을 촉진하기 위해 해당 사용을 최적화하고 통합합니다. 관심이 있다면 php excel개발 문서를 살펴보세요.
phpexcel에도 파일을 생성하는 두 가지 방법이 있습니다. 하나는 직접 출력하는 것이고, 다른 하나는 정적 파일을 생성하는 것입니다.
직접 출력:
기본 파일은 다음과 같습니다(클래스 디렉터리와 동일한 디렉터리에 있는 파일):
<?php include("./class/class.php"); // 包含class的基本头文件 include("./class/phpexcel/PHPExcel.php"); // 生成excel的基本类定义(注意文件名的大小写) // 如果直接输出excel文件,则要包含此文件 include("./class/phpexcel/PHPExcel/IOFactory.php"); // 创建phpexcel对象,此对象包含输出的内容及格式 $m_objPHPExcel = new PHPExcel(); // 模板文件,为了实现格式与内容分离,有关输出文件具体内容实现在模板文件中 // 模板文件将对象$m_objPHPExcel进行操作 include("./include/excel.php"); // 输出文件的类型,excel或pdf $m_exportType = "excel"; $m_strOutputExcelFileName = date('Y-m-j_H_i_s').".xls"; // 输出EXCEL文件名 $m_strOutputPdfFileName = date('Y-m-j_H_i_s').".pdf"; // 输出PDF文件名 // PHPExcel_IOFactory, 输出excel //require_once dirname(__FILE__).'/Classes/PHPExcel/IOFactory.php'; // 如果需要输出EXCEL格式 if($m_exportType=="excel"){ $objWriter = PHPExcel_IOFactory::createWriter($m_objPHPExcel, 'Excel5'); // 从浏览器直接输出$m_strOutputExcelFileName 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-excel;"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download"); header("Content-Disposition:attachment;filename=".$m_strOutputExcelFileName); header("Content-Transfer-Encoding:binary"); $objWriter->save("php://output"); } // 如果需要输出PDF格式 if($m_exportType=="pdf"){ $objWriter = PHPExcel_IOFactory::createWriter($m_objPHPExcel, 'PDF'); $objWriter->setSheetIndex(0); 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/pdf"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download"); header("Content-Disposition:attachment;filename=".$m_strOutputPdfFileName); header("Content-Transfer-Encoding:binary"); $objWriter->save("php://output"); } ?>
템플릿 파일 콘텐츠(추가 공통 작업 포함)
<?php global $m_objPHPExcel; // 由外部文件定义 // 设置基本属性 $m_objPHPExcel->getProperties()->setCreator("Sun Star Data Center") ->setLastModifiedBy("Sun Star Data Center") ->setTitle("Microsoft Office Excel Document") ->setSubject("Test Data Report -- From Sunstar Data Center") ->setDescription("LD Test Data Report, Generate by Sunstar Data Center") ->setKeywords("sunstar ld report") ->setCategory("Test result file"); // 创建多个工作薄 $sheet1 = $m_objPHPExcel->createSheet(); $sheet2 = $m_objPHPExcel->createSheet(); // 通过操作索引即可操作对应的工作薄 // 只需设置要操作的工作簿索引为当前活动工作簿,如 // $m_objPHPExcel->setActiveSheetIndex(0); // 设置第一个工作簿为活动工作簿 $m_objPHPExcel->setActiveSheetIndex(0); // 设置活动工作簿名称 // 如果是中文一定要使用iconv函数转换编码 $m_objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', '测试工作簿')); // 设置默认字体和大小 $m_objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', '宋体')); $m_objPHPExcel->getDefaultStyle()->getFont()->setSize(10); // 设置一列的宽度 $m_objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15); // 设置一行的高度 $m_objPHPExcel->getActiveSheet()->getRowDimension('6')->setRowHeight(30); // 合并单元格 $m_objPHPExcel->getActiveSheet()->mergeCells('A1:P1'); // 定义一个样式,加粗,居中 $styleArray1 = array( 'font' => array( 'bold' => true, 'color'=>array( 'argb' => '00000000', ), ), 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, ), ); // 将样式应用于A1单元格 $m_objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($styleArray1); // 设置单元格样式(黑色字体) $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLACK); // 黑色 // 设置单元格格式(背景) $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getFill()->getStartColor()->setARGB('00ff99cc'); // 将背景设置为浅粉色 // 设置单元格格式(数字格式) $m_objPHPExcel->getActiveSheet()->getStyle('F1')->getNumberFormat()->setFormatCode('0.000'); // 给特定单元格中写入内容 $m_objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello Baby'); // 设置单元格样式(居中) $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // 给单元格中放入图片, 将数据图片放在J1单元格内 $objDrawing = new PHPExcel_Worksheet_Drawing(); $objDrawing->setName('Logo'); $objDrawing->setDescription('Logo'); $objDrawing->setPath("../logo.jpg"); // 图片路径,只能是相对路径 $objDrawing->setWidth(400); // 图片宽度 $objDrawing->setHeight(123); // 图片高度 $objDrawing->setCoordinates('J1'); $objDrawing->setWorksheet($m_objPHPExcel->getActiveSheet()); // 设置A5单元格内容并增加超链接 $m_objPHPExcel->getActiveSheet()->setCellValue('A5', iconv('gbk', 'utf-8', '超链接keiyi.com')); $m_objPHPExcel->getActiveSheet()->getCell('A5')->getHyperlink()->setUrl('http://www.keiyi.com/'); ?>
서버 측에서 정적 파일 생성
직접 생성과 비교하면 이 두 가지 방법의 주요 차이점은 생성 형식이 완전히 동일하다는 것입니다. 위의 예를 기반으로 다음은 차이점에 유의하세요.
<?php // 包含class的基本头文件 include("./class/class.php"); // 生成excel的基本类定义(注意文件名的大小写) include("./class/phpexcel/PHPExcel.php"); // 包含写Excel5格式的文件,如果需要生成excel2007的文件,包含对应的Writer即可 include("./class/phpexcel/PHPExcel/Writer/Excel5.php"); // 包含写PDF格式文件 include("./class/phpexcel/PHPExcel/Writer/PDF.php"); // 创建phpexcel对象,此对象包含输出的内容及格式 $m_objPHPExcel = new PHPExcel(); // 模板文件,为了实现格式与内容分离,有关输出文件具体内容实现在模板文件中 // 模板文件将对象$m_objPHPExcel进行操作 include("./include/excel.php"); // 输出文件的类型,excel或pdf $m_exportType = "pdf"; $m_strOutputExcelFileName = date('Y-m-j_H_i_s').".xls"; // 输出EXCEL文件名 $m_strOutputPdfFileName = date('Y-m-j_H_i_s').".pdf"; // 输出PDF文件名 // 输出文件保存路径,此路径必须可写 $m_strOutputPath = "./output/"; // 如果需要输出EXCEL格式 if($m_exportType=="excel"){ $objWriter = new PHPExcel_Writer_Excel5($m_objPHPExcel); $objWriter->save($m_strOutputPath.$m_strOutputExcelFileName); } // 如果需要输出PDF格式 if($m_exportType=="pdf"){ $objWriter = new PHPExcel_Writer_PDF($m_objPHPExcel); $objWriter->save($m_strOutputPath.$m_strOutputPdfFileName); } ?>
위 내용은 PHP 내보내기 EXCEL 빠른 개발 가이드의 내용입니다. 관심 있으신 분은 PHP 중국어 홈페이지에서 더 자세히 검색해보시면 됩니다~
관련 추천:
Excel을 가져와 빅 데이터를 처리하는 방법에 대한 phpexcel 코드 예제 소개
위 내용은 PHP 내보내기 EXCEL 빠른 개발 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!