>  기사  >  백엔드 개발  >  PHP 내보내기 EXCEL 빠른 개발 가이드

PHP 내보내기 EXCEL 빠른 개발 가이드

韦小宝
韦小宝원래의
2017-11-24 09:50:081820검색

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(&#39;Y-m-j_H_i_s&#39;).".xls"; // 输出EXCEL文件名
    $m_strOutputPdfFileName = date(&#39;Y-m-j_H_i_s&#39;).".pdf"; // 输出PDF文件名
    // PHPExcel_IOFactory, 输出excel
    //require_once dirname(__FILE__).&#39;/Classes/PHPExcel/IOFactory.php&#39;;
    // 如果需要输出EXCEL格式
    if($m_exportType=="excel"){
    $objWriter = PHPExcel_IOFactory::createWriter($m_objPHPExcel, &#39;Excel5&#39;);
    // 从浏览器直接输出$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, &#39;PDF&#39;);
    $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(&#39;gbk&#39;, &#39;utf-8&#39;, &#39;测试工作簿&#39;));
// 设置默认字体和大小
$m_objPHPExcel->getDefaultStyle()->getFont()->setName(iconv(&#39;gbk&#39;, &#39;utf-8&#39;, &#39;宋体&#39;));
$m_objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
// 设置一列的宽度
$m_objPHPExcel->getActiveSheet()->getColumnDimension(&#39;A&#39;)->setWidth(15);
// 设置一行的高度
$m_objPHPExcel->getActiveSheet()->getRowDimension(&#39;6&#39;)->setRowHeight(30);
// 合并单元格
$m_objPHPExcel->getActiveSheet()->mergeCells(&#39;A1:P1&#39;);
// 定义一个样式,加粗,居中
$styleArray1 = array(
&#39;font&#39; => array(
&#39;bold&#39; => true,
&#39;color&#39;=>array(
&#39;argb&#39; => &#39;00000000&#39;,
),
),
&#39;alignment&#39; => array(
&#39;horizontal&#39; => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
),
);
// 将样式应用于A1单元格
$m_objPHPExcel->getActiveSheet()->getStyle(&#39;A1&#39;)->applyFromArray($styleArray1);
// 设置单元格样式(黑色字体)
$m_objPHPExcel->getActiveSheet()->getStyle(&#39;H5&#39;)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLACK); // 黑色
// 设置单元格格式(背景)
$m_objPHPExcel->getActiveSheet()->getStyle(&#39;H5&#39;)->getFill()->getStartColor()->setARGB(&#39;00ff99cc&#39;); // 将背景设置为浅粉色
// 设置单元格格式(数字格式)
$m_objPHPExcel->getActiveSheet()->getStyle(&#39;F1&#39;)->getNumberFormat()->setFormatCode(&#39;0.000&#39;);
// 给特定单元格中写入内容
$m_objPHPExcel->getActiveSheet()->setCellValue(&#39;A1&#39;, &#39;Hello Baby&#39;);
// 设置单元格样式(居中)
$m_objPHPExcel->getActiveSheet()->getStyle(&#39;H5&#39;)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
// 给单元格中放入图片, 将数据图片放在J1单元格内
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName(&#39;Logo&#39;);
$objDrawing->setDescription(&#39;Logo&#39;);
$objDrawing->setPath("../logo.jpg"); // 图片路径,只能是相对路径
$objDrawing->setWidth(400); // 图片宽度
$objDrawing->setHeight(123); // 图片高度
$objDrawing->setCoordinates(&#39;J1&#39;);
$objDrawing->setWorksheet($m_objPHPExcel->getActiveSheet());
// 设置A5单元格内容并增加超链接
$m_objPHPExcel->getActiveSheet()->setCellValue(&#39;A5&#39;, iconv(&#39;gbk&#39;, &#39;utf-8&#39;, &#39;超链接keiyi.com&#39;));
$m_objPHPExcel->getActiveSheet()->getCell(&#39;A5&#39;)->getHyperlink()->setUrl(&#39;http://www.keiyi.com/&#39;);
?>


서버 측에서 정적 파일 생성

직접 생성과 비교하면 이 두 가지 방법의 주요 차이점은 생성 형식이 완전히 동일하다는 것입니다. 위의 예를 기반으로 다음은 차이점에 유의하세요.

<?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(&#39;Y-m-j_H_i_s&#39;).".xls"; // 输出EXCEL文件名
$m_strOutputPdfFileName = date(&#39;Y-m-j_H_i_s&#39;).".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 코드 예제 소개

PHPExcel을 사용하여 데이터를 일괄 업로드

PHPExcel 사용 프로세스 소개


위 내용은 PHP 내보내기 EXCEL 빠른 개발 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.