PHPExcel 学习摘记

  1. 首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把classes解压到你项目的一个目录中,重名名为phpexcel,开始喽,(代码都摘自自带实例)
  2. 程序部分
  3. require_once  ‘./phpexcel/PHPExcel.php’;
  4. //首先创建一个新的对象  PHPExcel object
  5. $objPHPExcel =  new  PHPExcel();
  6. //设置文件的一些属性,在xls文件——>属性——>详细信息里可以看到这些值,xml表格里是没有这些值的
  7. $objPHPExcel
  8.       ->getProperties()  //获得文件属性对象,给下文提供设置资源
  9.       ->setCreator(  "MaartenBalliauw")              //设置文件的创建者
  10.       ->setLastModifiedBy(  "MaartenBalliauw")        //设置最后修改者
  11.       ->setTitle(  "Office2007 XLSX Test Document"  )    //设置标题
  12.       ->setSubject(  "Office2007 XLSX Test Document"  )  //设置主题
  13.       ->setDescription(  "Test document for Office2007 XLSX, generated using PHP classes.")  //设置备注
  14.       ->setKeywords(  "office 2007 openxmlphp")        //设置标记
  15.       ->setCategory(  "Test resultfile");                 //设置类别
  16. // 位置aaa  *为下文代码位置提供锚
  17. //给表格添加数据
  18. $objPHPExcel->setActiveSheetIndex(0)             //设置第一个内置表(一个xls文件里可以有多个表)为活动的
  19.            ->setCellValue(  ‘A1’,  ‘Hello’  )        //给表的单元格设置数据
  20.            ->setCellValue(  ‘B2’,  ‘world!’  )      //数据格式可以为字符串
  21.            ->setCellValue(  ‘C1’,12)            //数字型
  22.            ->setCellValue(  ‘D2’,12)            //
  23.            ->setCellValue(  ‘D3’,  true  )           //布尔型
  24.            ->setCellValue(  ‘D4’,  ‘=SUM(C1:D2)’  );//公式
  25. //得到当前活动的表,注意下文教程中会经常用到$objActSheet
  26. $objActSheet =$objPHPExcel->getActiveSheet();
  27. // 位置bbb *为下文代码位置提供锚
  28. //给当前活动的表设置名称
  29. $objActSheet->setTitle(‘Simple2222’);
  30. 代码还没有结束,可以复制下面的代码来决定我们将要做什么
  31. 我们将要做的是
  32. 1,直接生成一个文件
  33. $objWriter =PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel2007’);
  34. $objWriter->save(‘myexchel.xlsx’);
  35. 2、提示下载文件
  36. excel 2003 .xls
  37. //生成2003excel格式的xls文件
  38. header(‘Content-Type:application/vnd.ms-excel’);
  39. header(‘Content-Disposition:attachment;filename="01simple.xls"’);
  40. header(‘Cache-Control:max-age=0’);
  41. $objWriter =PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5’);
  42. $objWriter->save(‘php://output’);
  43. exit;
  44. excel 2007 .xlsx
  45. //生成2007excel格式的xlsx文件
  46. header(‘Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet’);
  47. header(‘Content-Disposition:attachment;filename="01simple.xlsx"’);
  48. header(‘Cache-Control:max-age=0’);
  49. $objWriter =PHPExcel_IOFactory:: createWriter($objPHPExcel, ‘Excel2007’);
  50. $objWriter->save( ‘php://output’);
  51. exit;
  52. pdf 文件
  53. // 下载一个pdf文件
  54. header(‘Content-Type:application/pdf’);
  55. header(‘Content-Disposition:attachment;filename="01simple.pdf"’);
  56. header(‘Cache-Control:max-age=0’);
  57. $objWriter =PHPExcel_IOFactory::createWriter($objPHPExcel, ‘PDF’);
  58. $objWriter->save(‘php://output’);
  59. exit;
  60. // 生成一个pdf文件
  61. $objWriter =PHPExcel_IOFactory::createWriter($objPHPExcel, ‘PDF’);
  62. $objWriter->save(‘a.pdf’);
  63. CSV文件
  64. $objWriter =PHPExcel_IOFactory::createWriter($objPHPExcel, ‘CSV’)->setDelimiter(‘,’ ) //设置分隔符
  65.                                                                  ->setEnclosure(‘"’ )   //设置包围符
  66.                                                                  ->setLineEnding("\r\n" )//设置行分隔符
  67.                                                                  ->setSheetIndex(0)      //设置活动表
  68.                                                                  ->save(str_replace(‘.php’ , ‘.csv’ ,__FILE__));
  69. HTML文件
  70. $objWriter =PHPExcel_IOFactory::createWriter($objPHPExcel, ‘HTML’);       //将$objPHPEcel对象转换成html格式的
  71. $objWriter->setSheetIndex(0);  //设置活动表
  72. //$objWriter->setImagesRoot(‘http://www.example.com’);
  73. $objWriter->save(str_replace(‘.php’,  ‘.htm’,__FILE__));     //保存文件
  74. 设置表格样式和数据格式
  75. 设置默认的字体和文字大小   锚:aa a
  76. $objPHPExcel->getDefaultStyle()->getFont()->setName( ‘Arial’);
  77. $objPHPExcel->getDefaultStyle()->getFont()->setSize(20);
  78. 日期格式    锚:bbb
  79. //获得秒值变量
  80. $dateTimeNow = time();
  81. //三个表格分别设置为当前实际的日期格式、时间格式、日期和时间格式
  82. //首先将单元格的值设置为由PHPExcel_Shared_Date::PHPToExcel方法转换后的excel格式的值,然后用过得到该单元格的样式里面数字样式再设置显示格式
  83. $objActSheet ->setCellValue( ‘C9’, PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow));  
  84. $objActSheet ->getStyle( ‘C9’)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
  85. $objActSheet->setCellValue( ‘C10’, PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow));
  86. $objActSheet->getStyle(  ‘C10’)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);
  87. $objActSheet->setCellValue(  ‘C10’, PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
  88. $objActSheet->getStyle(  ‘C10’)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);
  89. //将E4到E13的数字格式设置为EUR
  90. $objPHPExcel->getActiveSheet()->getStyle(  ‘E4:E13’)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
  91. 设置列的宽度     锚:bbb
  92. $objActSheet->getColumnDimension( ‘B’)->setAutoSize(true);   //内容自适应
  93. $objActSheet->getColumnDimension( ‘A’)->setWidth(30);        //30宽
  94. 设置文件打印的页眉和页脚      锚:bbb
  95. //设置打印时候的页眉页脚(设置完了以后可以通过打印预览来看效果)字符串中的&*好像是一些变量
  96. $objActSheet->getHeaderFooter()->setOddHeader(  ‘&L&G&C&HPlease treat thisdocument as confidential!’);
  97. $objActSheet->getHeaderFooter()->setOddFooter(  ‘&L&B’  .$objPHPExcel->getProperties()->getTitle().  ‘&RPage &P of&N’  );
  98. 设置页面文字的方向和页面大小   锚:bbb
  99. $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup:: ORIENTATION_LANDSCAPE);
  100. $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup:: PAPERSIZE_A4);   //A4纸大小
  101. 为页眉添加图片    office中有效 wps中无效 锚:bbb
  102. $objDrawing =  new  PHPExcel_Worksheet_HeaderFooterDrawing();
  103. $objDrawing->setName(‘PHPExcellogo’);
  104. $objDrawing->setPath(‘./images/phpexcel_logo.gif’);
  105. $objDrawing->setHeight(36);
  106. $objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($objDrawing,PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT  );
  107. 设置单元格的批注   锚:bbb
  108. //给单元格添加批注
  109. $objPHPExcel->getActiveSheet()->getComment(  ‘E13’)->setAuthor(‘PHPExcel’  );     //设置作者
  110. $objCommentRichText =$objPHPExcel->getActiveSheet()->getComment(‘E13’  )->getText()->createTextRun(‘PHPExcel:’);  //添加批注
  111. $objCommentRichText->getFont()->setBold(  true);  //将现有批注加粗
  112. $objPHPExcel->getActiveSheet()->getComment(  ‘E13’)->getText()->createTextRun("\r\n"  );      //添加更多批注
  113. $objPHPExcel->getActiveSheet()->getComment(  ‘E13’)->getText()->createTextRun(‘Total amount>复制代码

发表回复