加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP导出EXCEL快速开发攻略PHPEXCEL的使用详解

发布时间:2022-07-22 04:16:38 所属栏目:PHP教程 来源:互联网
导读:PHP导出EXCEL快速开发指南 phpexcel有专有的开发文档,详细操作请参考其开发文档,本文档只是对其在使用上作了优化整合,便于在新项目中快速开发。 phpexcel生成文件同样有两种方式,一种方式为直接输出,一种方式为生成静态文件。 直接输出: 主文件为(c
       PHP导出EXCEL快速开发指南
 
  phpexcel有专有的开发文档,详细操作请参考其开发文档,本文档只是对其在使用上作了优化整合,便于在新项目中快速开发。
 
  phpexcel生成文件同样有两种方式,一种方式为直接输出,一种方式为生成静态文件。
 
  直接输出:
 
  主文件为(class目录的同目录文件):
 
  复制代码 代码如下:www.CuoXIn.com
 
  <?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");
 
  }
 
  ?>
 
  模板文件内容(附加常用操作)
 
  复制代码 代码如下:www.CuoXIn.com
 
  <?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/');
 
  ?>
 
  在服务器端生成静态文件
 
  相比直接生成,这两种方法的主要区别是生成格式的不同,模板文件完全相同,下边是一个在上例基础上更改后的样子,注意与上例的区别。
 
  复制代码 代码如下:www.CuoXIn.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编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读