>  기사  >  백엔드 개발  >  PHP Excel 파일 내보내기 및 가져오기

PHP Excel 파일 내보내기 및 가져오기

WBOY
WBOY원래의
2016-07-25 09:09:32914검색
PHPExcel은 매우 강력한 MS Office Excel 문서 생성 클래스 라이브러리로, 보다 복잡한 형식으로 데이터를 출력해야 하는 경우 PHPExcel을 선택하는 것이 좋습니다. 그러나 그 사용법은 상대적으로 복잡합니다. 기억할 수 있도록 나열하십시오.
  1. //PHPExcel 클래스 라이브러리의 포함 경로 설정
  2. set_include_path('.'. PATH_SEPARATOR .
  3. 'D:ZealPHP_LIBS' . PATH_SEPARATOR .
  4. get_include_path());
  5. /**
  6. * 다음은 ////로 시작하는 행에 대해 다양한 선택 방법이 있습니다. 실제 필요에 따라 사용하세요.
  7. * 해당 행의 주석을 켜세요.
  8. * Excel5를 사용하는 경우 출력 내용은 GBK로 인코딩되어야 합니다.
  9. */
  10. require_once 'PHPExcel.php';
  11. // 주석 해제
  12. ////require_once 'PHPExcel /Writer/Excel5.php'; // 다른 하위 버전의 xls에 사용됩니다
  13. // 또는
  14. ////require_once 'PHPExcel/Writer/Excel2007.php' // excel-2007에 사용됩니다. format
  15. // 처리 객체 인스턴스 생성
  16. $objExcel = new PHPExcel();
  17. // 객체 인스턴스를 작성하는 파일 형식 생성, 주석 해제
  18. ////$ objWriter = new PHPExcel_Writer_Excel5($objExcel); // 다른 버전 형식의 경우
  19. // 또는
  20. ////$objWriter = new PHPExcel_Writer_Excel2007($objExcel) // 2007 형식의 경우
  21. //$objWriter - >setOffice2003Compatibility(true);
  22. //************************************ ******** **
  23. //문서의 기본 속성 설정
  24. $objProps = $objExcel->getProperties();
  25. $objProps->setCreator("Zeal Li ");
  26. $objProps-> setLastModifiedBy("Zeal Li");
  27. $objProps->setTitle("Office XLS 테스트 문서");
  28. $objProps->setSubject("Office XLS 테스트 문서, 데모");
  29. $ objProps->setDescription("PHPExcel에서 생성된 테스트 문서.");
  30. $objProps->setKeywords("office excel PHPExcel");
  31. $objProps ->setCategory("테스트");
  32. //******************************** **********
  33. //Settings 후속 콘텐츠 작업에 사용되는 현재 시트 인덱스입니다.
  34. //일반적으로 여러 시트를 사용할 때만 표시 호출이 필요합니다.
  35. //기본적으로 PHPExcel은 SheetIndex=0
  36. $objExcel->setActiveSheetIndex(0);
  37. $objActSheet = $objExcel ->getActiveSheet를 사용하여 자동으로 첫 번째 시트를 생성합니다. ();
  38. //현재 활성 시트의 이름 설정
  39. $objActSheet->setTitle('Test Sheet');
  40. //***** ** **********************************
  41. //셀 내용 설정
  42. //
  43. / /PHPExcel은 들어오는 콘텐츠를 기반으로 셀 콘텐츠 유형을 자동으로 결정합니다
  44. $objActSheet->setCellValue('A1', 'String content') // String content
  45. $objActSheet->setCellValue(' A2 ', 26); // 값
  46. $objActSheet->setCellValue('A3', true); // 부울 값
  47. $objActSheet->setCellValue('A4', '=SUM(A2: A2) )'); // 수식
  48. //컨텐츠 유형을 명시적으로 지정
  49. $objActSheet->setCellValueExplicit('A5', '847475847857487584',
  50. PHPExcel_Cell_DataType::TYPE_STRING);
  51. //셀 병합
  52. $objActSheet->mergeCells('B1:C22');
  53. //셀 분리
  54. $objActSheet->unmergeCells('B1:C22') ;
  55. //***************************************** *
  56. //셀 스타일 설정
  57. //
  58. //너비 설정
  59. $objActSheet->getColumnDimension('B')->setAutoSize(true);
  60. $ objActSheet ->getColumnDimension('A')->setWidth(30);
  61. $objStyleA5 = $objActSheet->getStyle('A5');
  62. //셀 내용 설정 숫자 형식. //가 FORMAT_NUMBER인 경우 실제 효과는 형식이 "0"으로 설정되지 않는다는 것입니다.
  63. //PHPExcel_Writer_Excel5_Format 클래스의 소스 코드에서 getXf($style) 메소드를 수정해야 합니다.
  64. //if 앞에 하나 //코드 줄:
  65. //if($ifmt === '0') $ifmt = 1;
  66. //
  67. //형식을 PHPExcel_Style_NumberFormat::FORMAT_NUMBER로 설정 특정 큰 숫자를 피하기 위해
  68. //다음 setAutoSize 메소드를 사용하여 각 줄의 내용을
  69. //원본 내용에 따라 표시할 수 있습니다.
  70. $objStyleA5
  71. ->getNumberFormat()
  72. ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
  73. //设置字体
  74. $objFontA5 = $objStyleA5->getFont ();
  75. $objFontA5->setName('Courier New');
  76. $objFontA5->setSize(10);
  77. $objFontA5->setBold(true);
  78. $objFontA5 ->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
  79. $objFontA5->getColor()->setARGB('FF999999');
  80. //设置对齐方式
  81. $objAlignA5 = $ objStyleA5->getAlignment();
  82. $objAlignA5->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  83. $objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
  84. //设置边框
  85. $objBorderA5 = $objStyleA5->getBorders();
  86. $objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  87. $objBorderA5->getTop()-> ;getColor()->setARGB('FFFF0000'); // 색상
  88. $objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  89. $objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  90. $objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  91. //设置填充颜color
  92. $objFillA5 = $objStyleA5->getFill();
  93. $objFillA5 ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  94. $objFillA5->getStartColor()->setARGB('FFEEEEEE');
  95. //从指정의 单元格复样式信息.
  96. $objActSheet->duplicateStyle($objStyleA5, 'B1:C22');
  97. //******************** *****************
  98. //添加图文
  99. $obj드로잉 = new PHPExcel_Worksheet_드로잉();
  100. $obj드로잉->setName('ZealImg');
  101. $obj드로잉->setDescription('Zeal이 삽입한 이미지');
  102. $obj드로잉->setPath('./zeali.net.logo.gif');
  103. $obj드로잉->setHeight (36);
  104. $obj드로잉->setCoordinates('C23');
  105. $obj드로잉->setOffsetX(10);
  106. $obj드로잉->setRotation(15);
  107. $obj드로잉 ->getShadow()->setVisible(true);
  108. $obj드로잉->getShadow()->setDirection(36);
  109. $obj드로잉->setWorksheet($objActSheet);
  110. //添加一个 새로운 워크시트
  111. $objExcel->createSheet();
  112. $objExcel->getSheet(1)->setTitle('测试2');
  113. //保护单원格
  114. $objExcel->getSheet(1)->getProtection()->setSheet(true);
  115. $objExcel->getSheet(1)-> protectedCells('A1:C22', 'PHPExcel');
  116. //**************************** ***********
  117. //输流内容
  118. //
  119. $outputFileName = "output.xls";
  120. //到文件
  121. ////$ objWriter->save($outputFileName);
  122. //또는
  123. //到浏览器
  124. ////header("Content-Type: application/force-download");
  125. / ///header("콘텐츠 유형: 애플리케이션/옥텟-스트림");
  126. ////header("콘텐츠 유형: 애플리케이션/다운로드");
  127. ////header('콘텐츠- 처리:inline;filename="'.$outputFileName.'"');
  128. ////header("Content-Transfer-Encoding: 바이너리");
  129. ////header("만료: 월 , 1997년 7월 26일 05:00:00 GMT");
  130. ////header("최종 수정: " . gmdate("D, d M Y H:i:s") . " GMT");
  131. ////header("캐시 제어: 재검증 필수, 사후 확인=0, 사전 확인=0");
  132. ////header("Pragma: 아니요 -cache");
  133. ////$objWriter->save('php://output');
  134. ?>
复제代码


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