PHPExcel은 매우 강력한 MS Office Excel 문서 생성 클래스 라이브러리로, 보다 복잡한 형식으로 데이터를 출력해야 하는 경우 PHPExcel을 선택하는 것이 좋습니다. 그러나 그 사용법은 상대적으로 복잡합니다. 기억할 수 있도록 나열하십시오.
- //PHPExcel 클래스 라이브러리의 포함 경로 설정
- set_include_path('.'. PATH_SEPARATOR .
- 'D:ZealPHP_LIBS' . PATH_SEPARATOR .
- get_include_path());
- /**
- * 다음은 ////로 시작하는 행에 대해 다양한 선택 방법이 있습니다. 실제 필요에 따라 사용하세요.
- * 해당 행의 주석을 켜세요.
- * Excel5를 사용하는 경우 출력 내용은 GBK로 인코딩되어야 합니다.
- */
- require_once 'PHPExcel.php';
- // 주석 해제
- ////require_once 'PHPExcel /Writer/Excel5.php'; // 다른 하위 버전의 xls에 사용됩니다
- // 또는
- ////require_once 'PHPExcel/Writer/Excel2007.php' // excel-2007에 사용됩니다. format
- // 처리 객체 인스턴스 생성
- $objExcel = new PHPExcel();
- // 객체 인스턴스를 작성하는 파일 형식 생성, 주석 해제
- ////$ objWriter = new PHPExcel_Writer_Excel5($objExcel); // 다른 버전 형식의 경우
- // 또는
- ////$objWriter = new PHPExcel_Writer_Excel2007($objExcel) // 2007 형식의 경우
- //$objWriter - >setOffice2003Compatibility(true);
-
- //************************************ ******** **
- //문서의 기본 속성 설정
- $objProps = $objExcel->getProperties();
- $objProps->setCreator("Zeal Li ");
- $objProps-> setLastModifiedBy("Zeal Li");
- $objProps->setTitle("Office XLS 테스트 문서");
- $objProps->setSubject("Office XLS 테스트 문서, 데모");
- $ objProps->setDescription("PHPExcel에서 생성된 테스트 문서.");
- $objProps->setKeywords("office excel PHPExcel");
- $objProps ->setCategory("테스트");
-
- //******************************** **********
- //Settings 후속 콘텐츠 작업에 사용되는 현재 시트 인덱스입니다.
- //일반적으로 여러 시트를 사용할 때만 표시 호출이 필요합니다.
- //기본적으로 PHPExcel은 SheetIndex=0
- $objExcel->setActiveSheetIndex(0);
-
-
- $objActSheet = $objExcel ->getActiveSheet를 사용하여 자동으로 첫 번째 시트를 생성합니다. ();
-
- //현재 활성 시트의 이름 설정
- $objActSheet->setTitle('Test Sheet');
-
- //***** ** **********************************
- //셀 내용 설정
- //
- / /PHPExcel은 들어오는 콘텐츠를 기반으로 셀 콘텐츠 유형을 자동으로 결정합니다
- $objActSheet->setCellValue('A1', 'String content') // String content
- $objActSheet->setCellValue(' A2 ', 26); // 값
- $objActSheet->setCellValue('A3', true); // 부울 값
- $objActSheet->setCellValue('A4', '=SUM(A2: A2) )'); // 수식
-
- //컨텐츠 유형을 명시적으로 지정
- $objActSheet->setCellValueExplicit('A5', '847475847857487584',
- PHPExcel_Cell_DataType::TYPE_STRING);
-
- //셀 병합
- $objActSheet->mergeCells('B1:C22');
-
- //셀 분리
- $objActSheet->unmergeCells('B1:C22') ;
-
- //***************************************** *
- //셀 스타일 설정
- //
-
- //너비 설정
- $objActSheet->getColumnDimension('B')->setAutoSize(true);
- $ objActSheet ->getColumnDimension('A')->setWidth(30);
-
- $objStyleA5 = $objActSheet->getStyle('A5');
-
- //셀 내용 설정 숫자 형식. //가 FORMAT_NUMBER인 경우 실제 효과는 형식이 "0"으로 설정되지 않는다는 것입니다.
- //PHPExcel_Writer_Excel5_Format 클래스의 소스 코드에서 getXf($style) 메소드를 수정해야 합니다.
- //if 앞에 하나 //코드 줄:
- //if($ifmt === '0') $ifmt = 1;
- //
- //형식을 PHPExcel_Style_NumberFormat::FORMAT_NUMBER로 설정 특정 큰 숫자를 피하기 위해
- //다음 setAutoSize 메소드를 사용하여 각 줄의 내용을
- //원본 내용에 따라 표시할 수 있습니다.
- $objStyleA5
- ->getNumberFormat()
- ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
-
- //设置字体
- $objFontA5 = $objStyleA5->getFont ();
- $objFontA5->setName('Courier New');
- $objFontA5->setSize(10);
- $objFontA5->setBold(true);
- $objFontA5 ->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
- $objFontA5->getColor()->setARGB('FF999999');
-
- //设置对齐方式
- $objAlignA5 = $ objStyleA5->getAlignment();
- $objAlignA5->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
- $objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
-
- //设置边框
- $objBorderA5 = $objStyleA5->getBorders();
- $objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
- $objBorderA5->getTop()-> ;getColor()->setARGB('FFFF0000'); // 색상
- $objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
- $objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
- $objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
-
- //设置填充颜color
- $objFillA5 = $objStyleA5->getFill();
- $objFillA5 ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
- $objFillA5->getStartColor()->setARGB('FFEEEEEE');
-
- //从指정의 单元格复样式信息.
- $objActSheet->duplicateStyle($objStyleA5, 'B1:C22');
-
-
- //******************** *****************
- //添加图文
- $obj드로잉 = new PHPExcel_Worksheet_드로잉();
- $obj드로잉->setName('ZealImg');
- $obj드로잉->setDescription('Zeal이 삽입한 이미지');
- $obj드로잉->setPath('./zeali.net.logo.gif');
- $obj드로잉->setHeight (36);
- $obj드로잉->setCoordinates('C23');
- $obj드로잉->setOffsetX(10);
- $obj드로잉->setRotation(15);
- $obj드로잉 ->getShadow()->setVisible(true);
- $obj드로잉->getShadow()->setDirection(36);
- $obj드로잉->setWorksheet($objActSheet);
-
-
- //添加一个 새로운 워크시트
- $objExcel->createSheet();
- $objExcel->getSheet(1)->setTitle('测试2');
-
- //保护单원格
- $objExcel->getSheet(1)->getProtection()->setSheet(true);
- $objExcel->getSheet(1)-> protectedCells('A1:C22', 'PHPExcel');
-
-
- //**************************** ***********
- //输流内容
- //
- $outputFileName = "output.xls";
- //到文件
- ////$ objWriter->save($outputFileName);
- //또는
- //到浏览器
- ////header("Content-Type: application/force-download");
- / ///header("콘텐츠 유형: 애플리케이션/옥텟-스트림");
- ////header("콘텐츠 유형: 애플리케이션/다운로드");
- ////header('콘텐츠- 처리:inline;filename="'.$outputFileName.'"');
- ////header("Content-Transfer-Encoding: 바이너리");
- ////header("만료: 월 , 1997년 7월 26일 05:00:00 GMT");
- ////header("최종 수정: " . gmdate("D, d M Y H:i:s") . " GMT");
- ////header("캐시 제어: 재검증 필수, 사후 확인=0, 사전 확인=0");
- ////header("Pragma: 아니요 -cache");
- ////$objWriter->save('php://output');
-
- ?>
-
复제代码
|