찾다
백엔드 개발PHP 튜토리얼PHPExcel最简单的实例教程

PHPExcel 是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择。不过其使用方法相对来说也就有些繁琐。列举以记之。

PHP代码

  1.     
  2. //设置PHPExcel类库的include path     
  3. set_include_path( '.' . PATH_SEPARATOR .    
  4.                   'D:\Zeal\PHP_LIBS'  . PATH_SEPARATOR .    
  5.                  get_include_path());    
  6.     
  7. /**  
  8.  * 打开对应行的注释。  
  9.  * 如果使用 Excel5 ,输出的内容应该是GBK编码。  
  10.  */     
  11. require_once   'PHPExcel.php' ;    
  12.     
  13. // uncomment     
  14.   
  15. // or     
  16.   
  17.     
  18. // 创建一个处理对象实例     
  19. $objExcel  =  new  PHPExcel();    
  20.     
  21. // 创建文件格式写入对象实例, uncomment     
  22.   
  23. // or     
  24.   
  25. //$objWriter->setOffice2003Compatibility(true);     
  26.     
  27. //*************************************     
  28. //设置文档基本属性     
  29. $objProps  =  $objExcel ->getProperties();    
  30. $objProps ->setCreator( "Zeal Li" );    
  31. $objProps ->setLastModifiedBy( "Zeal Li" );    
  32. $objProps ->setTitle( "Office XLS Test Document" );    
  33. $objProps ->setSubject( "Office XLS Test Document, Demo" );    
  34. $objProps ->setDescription( "Test document, generated by PHPExcel." );    
  35. $objProps ->setKeywords( "office excel PHPExcel" );    
  36. $objProps ->setCategory( "Test" );    
  37.     
  38. //*************************************     
  39. //设置当前的sheet索引,用于后续的内容操作。     
  40. //一般只有在使用多个sheet的时候才需要显示调用。     
  41. //缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0     
  42. $objExcel ->setActiveSheetIndex(0);    
  43.     
  44.     
  45. $objActSheet  =  $objExcel ->getActiveSheet();    
  46.     
  47. //设置当前活动sheet的名称     
  48. $objActSheet ->setTitle( '测试Sheet' );    
  49.     
  50. //*************************************     
  51. //设置单元格内容     
  52. //     
  53. //由PHPExcel根据传入内容自动判断单元格内容类型     
  54. $objActSheet ->setCellValue( 'A1' ,  '字符串内容' );   // 字符串内容     
  55. $objActSheet ->setCellValue( 'A2' , 26);             // 数值     
  56. $objActSheet ->setCellValue( 'A3' , true);           // 布尔值     
  57. $objActSheet ->setCellValue( 'A4' ,  '=SUM(A2:A2)' );  // 公式     
  58.     
  59. //显式指定内容类型     
  60. $objActSheet ->setCellValueExplicit( 'A5' ,  '847475847857487584' ,     
  61.                                    PHPExcel_Cell_DataType::TYPE_STRING);    
  62.     
  63. //合并单元格     
  64. $objActSheet ->mergeCells( 'B1:C22' );    
  65.     
  66. //分离单元格     
  67. $objActSheet ->unmergeCells( 'B1:C22' );    
  68.     
  69. //*************************************     
  70. //设置单元格样式     
  71. //     
  72.     
  73. //设置宽度     
  74. $objActSheet ->getColumnDimension( 'B' )->setAutoSize(true);    
  75. $objActSheet ->getColumnDimension( 'A' )->setWidth(30);    
  76.     
  77. $objStyleA5  =  $objActSheet ->getStyle( 'A5' );    
  78.     
  79. //设置单元格内容的数字格式。     
  80. //     
  81. //如果使用了 PHPExcel_Writer_Excel5 来生成内容的话,     
  82.   
  83. //各种自定义格式化方式中,其它类型都可以正常使用,但当setFormatCode     
  84. //为 FORMAT_NUMBER 的时候,实际出来的效果被没有把格式设置为"0"。需要     
  85.   
  86.   
  87. //行代码:      
  88. //if($ifmt === '0') $ifmt = 1;     
  89. //     
  90.   
  91.   
  92. //都按原始内容全部显示出来。     
  93. $objStyleA5     
  94.     ->getNumberFormat()    
  95.     ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);    
  96.     
  97. //设置字体     
  98. $objFontA5  =  $objStyleA5 ->getFont();    
  99. $objFontA5 ->setName( 'Courier New' );    
  100. $objFontA5 ->setSize(10);    
  101. $objFontA5 ->setBold(true);    
  102. $objFontA5 ->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);    
  103. $objFontA5 ->getColor()->setARGB( 'FF999999' );    
  104.     
  105. //设置对齐方式     
  106. $objAlignA5  =  $objStyleA5 ->getAlignment();    
  107. $objAlignA5 ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);    
  108. $objAlignA5 ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);    
  109.     
  110. //设置边框     
  111. $objBorderA5  =  $objStyleA5 ->getBorders();    
  112. $objBorderA5 ->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);    
  113. $objBorderA5 ->getTop()->getColor()->setARGB( 'FFFF0000' );  // color     
  114. $objBorderA5 ->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);    
  115. $objBorderA5 ->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);    
  116. $objBorderA5 ->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);    
  117.     
  118. //设置填充颜色     
  119. $objFillA5  =  $objStyleA5 ->getFill();    
  120. $objFillA5 ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);    
  121. $objFillA5 ->getStartColor()->setARGB( 'FFEEEEEE' );    
  122.     
  123. //从指定的单元格复制样式信息.     
  124. $objActSheet ->duplicateStyle( $objStyleA5 ,  'B1:C22' );    
  125.     
  126.     
  127. //*************************************     
  128. //添加图片     
  129. $objDrawing  =  new  PHPExcel_Worksheet_Drawing();    
  130. $objDrawing ->setName( 'ZealImg' );    
  131. $objDrawing ->setDescription( 'Image inserted by Zeal' );    
  132. $objDrawing ->setPath( './zeali.net.logo.gif' );    
  133. $objDrawing ->setHeight(36);    
  134. $objDrawing ->setCoordinates( 'C23' );    
  135. $objDrawing ->setOffsetX(10);    
  136. $objDrawing ->setRotation(15);    
  137. $objDrawing ->getShadow()->setVisible(true);    
  138. $objDrawing ->getShadow()->setDirection(36);    
  139. $objDrawing ->setWorksheet( $objActSheet );    
  140.     
  141.     
  142. //添加一个新的worksheet     
  143. $objExcel ->createSheet();    
  144. $objExcel ->getSheet(1)->setTitle( '测试2' );    
  145.     
  146. //保护单元格     
  147. $objExcel ->getSheet(1)->getProtection()->setSheet(true);    
  148. $objExcel ->getSheet(1)->protectCells( 'A1:C22' ,  'PHPExcel' );    
  149.     
  150.     
  151. //*************************************     
  152. //输出内容     
  153. //     
  154. $outputFileName  =  "output.xls" ;    
  155. //到文件     
  156. ////$objWriter->save($outputFileName);     
  157. //or     
  158. //到浏览器     
  159. ////header("Content-Type: application/force-download");     
  160. ////header("Content-Type: application/octet-stream");     
  161. ////header("Content-Type: application/download");     
  162.   
  163. ////header("Content-Transfer-Encoding: binary");     
  164. ////header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");     
  165. ////header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");     
  166.   
  167. ////header("Pragma: no-cache");     
  168. ////$objWriter->save('php://output');     
  169.     
  170. ?>    

下面是PHPExcel读取Excel文件的例子:

PHP代码

  1. $fileName  =  'excel.xls' ;  
  2. $path  =  'path' ;  
  3. $filePath  =  $path . $fileName ;  
  4. $PHPExcel  =  new  PHPExcel();       
  5. $PHPReader  =  new  PHPExcel_Reader_Excel2007();                 
  6. if (! $PHPReader ->canRead( $filePath )){                          
  7.      $PHPReader  =  new  PHPExcel_Reader_Excel5();    
  8.      if (! $PHPReader ->canRead( $filePath )){                          
  9.          echo   'no Excel' ;  
  10.          return  ;  
  11.     }  
  12. }  
  13. $PHPExcel  =  $PHPReader ->load( $filePath );  
  14. $currentSheet  =  $PHPExcel ->getSheet(0);  
  15. /**取得一共有多少列*/   
  16. $allColumn  =  $currentSheet ->getHighestColumn();     
  17. /**取得一共有多少行*/   
  18. $allRow  =  array ( $currentSheet ->getHighestRow());    
  19.   
  20. for ( $currentRow  = 1; $currentRow
  21.      for ( $currentColumn = 'A' ; $currentColumn
  22.          $address  =  $currentColumn . $currentRow ;  
  23.           
  24.          echo   $currentSheet ->getCell( $address )->getValue(). "\t" ;  
  25.     }  
  26.      echo   "\n" ;  
  27. }  
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP와 Python : 다른 패러다임이 설명되었습니다PHP와 Python : 다른 패러다임이 설명되었습니다Apr 18, 2025 am 12:26 AM

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP와 Python : 그들의 역사에 깊은 다이빙PHP와 Python : 그들의 역사에 깊은 다이빙Apr 18, 2025 am 12:25 AM

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

PHP와 Python 중에서 선택 : 가이드PHP와 Python 중에서 선택 : 가이드Apr 18, 2025 am 12:24 AM

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

PHP 및 프레임 워크 : 언어 현대화PHP 및 프레임 워크 : 언어 현대화Apr 18, 2025 am 12:14 AM

PHP는 현대화 프로세스에서 많은 웹 사이트 및 응용 프로그램을 지원하고 프레임 워크를 통해 개발 요구에 적응하기 때문에 여전히 중요합니다. 1.PHP7은 성능을 향상시키고 새로운 기능을 소개합니다. 2. Laravel, Symfony 및 Codeigniter와 같은 현대 프레임 워크는 개발을 단순화하고 코드 품질을 향상시킵니다. 3. 성능 최적화 및 모범 사례는 응용 프로그램 효율성을 더욱 향상시킵니다.

PHP의 영향 : 웹 개발 및 그 이상PHP의 영향 : 웹 개발 및 그 이상Apr 18, 2025 am 12:10 AM

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?Apr 17, 2025 am 12:25 AM

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

PHP는 객체 클로닝 (클론 키워드) 및 __clone 마법 방법을 어떻게 처리합니까?PHP는 객체 클로닝 (클론 키워드) 및 __clone 마법 방법을 어떻게 처리합니까?Apr 17, 2025 am 12:24 AM

PHP에서는 클론 키워드를 사용하여 객체 사본을 만들고 \ _ \ _ Clone Magic 메소드를 통해 클로닝 동작을 사용자 정의하십시오. 1. 복제 키워드를 사용하여 얕은 사본을 만들어 객체의 속성을 복제하지만 객체의 속성은 아닙니다. 2. \ _ \ _ 클론 방법은 얕은 복사 문제를 피하기 위해 중첩 된 물체를 깊이 복사 할 수 있습니다. 3. 복제의 순환 참조 및 성능 문제를 피하고 클로닝 작업을 최적화하여 효율성을 향상시키기 위해주의를 기울이십시오.

PHP vs. Python : 사용 사례 및 응용 프로그램PHP vs. Python : 사용 사례 및 응용 프로그램Apr 17, 2025 am 12:23 AM

PHP는 웹 개발 및 컨텐츠 관리 시스템에 적합하며 Python은 데이터 과학, 기계 학습 및 자동화 스크립트에 적합합니다. 1.PHP는 빠르고 확장 가능한 웹 사이트 및 응용 프로그램을 구축하는 데 잘 작동하며 WordPress와 같은 CMS에서 일반적으로 사용됩니다. 2. Python은 Numpy 및 Tensorflow와 같은 풍부한 라이브러리를 통해 데이터 과학 및 기계 학습 분야에서 뛰어난 공연을했습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구