Maison  >  Article  >  développement back-end  >  phpexcel快速开发指南(不错)

phpexcel快速开发指南(不错)

WBOY
WBOYoriginal
2016-07-25 09:04:20998parcourir
  1. include("./class/class.php"); // 包含class的基本头文件

  2. include("./class/phpexcel/PHPExcel.php"); // 生成excel的基本类定义(注意文件名的大小写)
  3. // 如果直接输出excel文件,则要包含此文件

  4. include("./class/phpexcel/PHPExcel/IOFactory.php");
  5. // 创建phpexcel对象,此对象包含输出的内容及格式

  6. $m_objPHPExcel = new PHPExcel();
  7. // 模板文件,为了实现格式与内容分离,有关输出文件具体内容实现在模板文件中

  8. // 模板文件将对象$m_objPHPExcel进行操作
  9. include("./include/excel.php");
  10. // 输出文件的类型,excel或pdf

  11. $m_exportType = "excel";
  12. $m_strOutputExcelFileName = date('Y-m-j_H_i_s').".xls"; // 输出EXCEL文件名

  13. $m_strOutputPdfFileName = date('Y-m-j_H_i_s').".pdf"; // 输出PDF文件名
  14. // PHPExcel_IOFactory, 输出excel

  15. //require_once dirname(__FILE__).'/Classes/PHPExcel/IOFactory.php';
  16. // 如果需要输出EXCEL格式

  17. if($m_exportType=="excel"){
  18. $objWriter = PHPExcel_IOFactory::createWriter($m_objPHPExcel, 'Excel5');
  19. // 从浏览器直接输出$m_strOutputExcelFileName

  20. header("Pragma: public");
  21. header("Expires: 0");
  22. header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
  23. header("Content-Type:application/force-download");
  24. header("Content-Type: application/vnd.ms-excel;");
  25. header("Content-Type:application/octet-stream");
  26. header("Content-Type:application/download");
  27. header("Content-Disposition:attachment;filename=".$m_strOutputExcelFileName);
  28. header("Content-Transfer-Encoding:binary");
  29. $objWriter->save("php://output");
  30. }
  31. // 如果需要输出PDF格式

  32. if($m_exportType=="pdf"){
  33. $objWriter = PHPExcel_IOFactory::createWriter($m_objPHPExcel, 'PDF');
  34. $objWriter->setSheetIndex(0);
  35. header("Pragma: public");

  36. header("Expires: 0");
  37. header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
  38. header("Content-Type:application/force-download");
  39. header("Content-Type: application/pdf");
  40. header("Content-Type:application/octet-stream");
  41. header("Content-Type:application/download");
  42. header("Content-Disposition:attachment;filename=".$m_strOutputPdfFileName);
  43. header("Content-Transfer-Encoding:binary");
  44. $objWriter->save("php://output");
  45. }
  46. ?>
复制代码

2、模板文件内容(附加常用操作)

  1. global $m_objPHPExcel; // 由外部文件定义

  2. // 设置基本属性

  3. $m_objPHPExcel->getProperties()->setCreator("Sun Star Data Center")
  4. ->setLastModifiedBy("Sun Star Data Center")
  5. ->setTitle("Microsoft Office Excel Document")
  6. ->setSubject("Test Data Report -- From Sunstar Data Center")
  7. ->setDescription("LD Test Data Report, Generate by Sunstar Data Center")
  8. ->setKeywords("sunstar ld report")
  9. ->setCategory("Test result file");
  10. // 创建多个工作薄

  11. $sheet1 = $m_objPHPExcel->createSheet();
  12. $sheet2 = $m_objPHPExcel->createSheet();
  13. // 通过操作索引即可操作对应的工作薄

  14. // 只需设置要操作的工作簿索引为当前活动工作簿,如
  15. // $m_objPHPExcel->setActiveSheetIndex(0);
  16. // 设置第一个工作簿为活动工作簿

  17. $m_objPHPExcel->setActiveSheetIndex(0);
  18. // 设置活动工作簿名称

  19. // 如果是中文一定要使用iconv函数转换编码
  20. $m_objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', '测试工作簿'));
  21. // 设置默认字体和大小

  22. $m_objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', '宋体'));
  23. $m_objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
  24. // 设置一列的宽度

  25. $m_objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
  26. // 设置一行的高度

  27. $m_objPHPExcel->getActiveSheet()->getRowDimension('6')->setRowHeight(30);
  28. // 合并单元格

  29. $m_objPHPExcel->getActiveSheet()->mergeCells('A1:P1');
  30. // 定义一个样式,加粗,居中

  31. $styleArray1 = array(
  32. 'font' => array(
  33. 'bold' => true,
  34. 'color'=>array(
  35. 'argb' => '00000000',
  36. ),
  37. ),
  38. 'alignment' => array(

  39. 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
  40. ),
  41. );
  42. // 将样式应用于A1单元格

  43. $m_objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($styleArray1);
  44. // 设置单元格样式(黑色字体)

  45. $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLACK); // 黑色
  46. // 设置单元格格式(背景)

  47. $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getFill()->getStartColor()->setARGB('00ff99cc'); // 将背景设置为浅粉色
  48. // 设置单元格格式(数字格式)

  49. $m_objPHPExcel->getActiveSheet()->getStyle('F1')->getNumberFormat()->setFormatCode('0.000');
  50. // 给特定单元格中写入内容

  51. $m_objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello Baby');
  52. // 设置单元格样式(居中)

  53. $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  54. // 给单元格中放入图片, 将数据图片放在J1单元格内

  55. $objDrawing = new PHPExcel_Worksheet_Drawing();
  56. $objDrawing->setName('Logo');
  57. $objDrawing->setDescription('Logo');
  58. $objDrawing->setPath("../logo.jpg"); // 图片路径,只能是相对路径
  59. $objDrawing->setWidth(400); // 图片宽度
  60. $objDrawing->setHeight(123); // 图片高度
  61. $objDrawing->setCoordinates('J1');//单元格
  62. $objDrawing->setWorksheet($m_objPHPExcel->getActiveSheet());
  63. // 设置A5单元格内容并增加超链接

  64. $m_objPHPExcel->getActiveSheet()->setCellValue('A5', iconv('gbk', 'utf-8', '超链接jbxue.com'));
  65. $m_objPHPExcel->getActiveSheet()->getCell('A5')->getHyperlink()->setUrl('http://bbs.it-home.org/');
  66. ?>
复制代码

3、在服务器端生成静态文件 相比直接生成,这两种方法的主要区别是生成格式的不同,模板文件完全相同,下边是一个在上例基础上更改后的样子,注意与上例的区别。

  1. // 包含class的基本头文件

  2. include("./class/class.php");
  3. // 生成excel的基本类定义(注意文件名的大小写)

  4. include("./class/phpexcel/PHPExcel.php");
  5. // 包含写Excel5格式的文件,如果需要生成excel2007的文件,包含对应的Writer即可
  6. include("./class/phpexcel/PHPExcel/Writer/Excel5.php");
  7. // 包含写PDF格式文件
  8. include("./class/phpexcel/PHPExcel/Writer/PDF.php");
  9. // 创建phpexcel对象,此对象包含输出的内容及格式

  10. $m_objPHPExcel = new PHPExcel();
  11. // 模板文件,为了实现格式与内容分离,有关输出文件具体内容实现在模板文件中

  12. // 模板文件将对象$m_objPHPExcel进行操作
  13. include("./include/excel.php");
  14. // 输出文件的类型,excel或pdf

  15. $m_exportType = "pdf";
  16. $m_strOutputExcelFileName = date('Y-m-j_H_i_s').".xls"; // 输出EXCEL文件名

  17. $m_strOutputPdfFileName = date('Y-m-j_H_i_s').".pdf"; // 输出PDF文件名
  18. // 输出文件保存路径,此路径必须可写

  19. $m_strOutputPath = "./output/";
  20. // 如果需要输出EXCEL格式

  21. if($m_exportType=="excel"){
  22. $objWriter = new PHPExcel_Writer_Excel5($m_objPHPExcel);
  23. $objWriter->save($m_strOutputPath.$m_strOutputExcelFileName);
  24. }
  25. // 如果需要输出PDF格式

  26. if($m_exportType=="pdf"){
  27. $objWriter = new PHPExcel_Writer_PDF($m_objPHPExcel);
  28. $objWriter->save($m_strOutputPath.$m_strOutputPdfFileName);
  29. }
  30. ?>
复制代码


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn