[PHPEXCEL] phpexcel 사용법

2015. 7. 27. 18:58Web



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

잘 되네... 비밀번호도 잘 먹고...


 대충 거시기 해불자.


<?php


//PHPEXCEL     : https://phpexcel.codeplex.com/

//위에서 다운로드 후, 압축 해제 후, Classes폴더를 라이브러리폴더에 추가 하고 사용 하자 ! 


// PHPExcel.php 파일 경로 지정

include_once("ExcelClasses/PHPExcel.php");


// Create new PHPExcel object

$objPHPExcel = new PHPExcel();

$sheet = $objPHPExcel->getActiveSheet();


// Set properties

// Excel 문서 속성

$objPHPExcel->getProperties()

->setCreator("작성자")

->setLastModifiedBy("최종 수정자")

->setTitle("타이틀")

->setSubject("주제")

->setDescription("설명")

->setKeywords("키워드")

->setCategory("라이센스");


//엑셀 수정시 비밀번호를 입력해야된다.

$phpexcel->getActiveSheet()->getProtection()->setSheet(true);

$phpexcel->getActiveSheet()->getProtection()->setSort(true);

$phpexcel->getActiveSheet()->getProtection()->setInsertRows(true);

$phpexcel->getActiveSheet()->getProtection()->setFormatCells(true);

$phpexcel->getActiveSheet()->getProtection()->setPassword("0000");                


/*

* 셀 컨트롤

*/


// 셀 갑 입력

$objPHPExcel->setActiveSheetIndex(0)->setCellValue("A1", "셀값");


// 셀 합치기

$sheet->mergeCells('A1:C1');


// 셀 가로크기

$sheet->getColumnDimension('A')->setWidth(6);


// 셀 높이

$sheet->getRowDimension(1)->setRowHeight(25);


// 셀 숫자형 변환 (1000 -> 1,000)

$sheet->getStyle('A1:C1')->getNumberFormat()->setFormatCode('#,##0');


// 글꼴 및 정렬

$sheet->duplicateStyleArray(

array(

'font' => array(

'bold' => true,

'size' => 14

),

'alignment' => array(

'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,

'vertical'   => PHPExcel_Style_Alignment::VERTICAL_CENTER

)

),

'A1'

);


//개별 적용

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); // 셀의 text를 굵게

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(13); // 셀의 textsize를 13으로


// 보더 스타일 지정

$defaultBorder = array(

'style' => PHPExcel_Style_Border::BORDER_THIN,

'color' => array('rgb'=>'000000')

);

$headBorder = array(

'borders' => array(

'bottom' => $defaultBorder,

'left'   => $defaultBorder,

'top'    => $defaultBorder,

'right'  => $defaultBorder

)

);


// 다중 셀 보더 스타일 적용

foreach(range('A','C') as $i => $cell){

$sheet->getStyle($cell.'1')->applyFromArray( $headBorder );

}


//줄바꿈 허용

$phpexcel->getActiveSheet()->getStyle('H4')->getAlignment()->setWrapText(true);

$phpexcel->getActiveSheet()->getStyle('K6')->getAlignment()->setWrapText(true);

$phpexcel->getActiveSheet()->getStyle('K8')->getAlignment()->setWrapText(true);


// 배경색 적용

$sheet->duplicateStyleArray(

array(

'fill' => array(

'type'  => PHPExcel_Style_Fill::FILL_SOLID,

'color' => array('rgb'=>'F3F3F3')

)

),

'A1:C1'

);


// 셀 정렬 (다른방식)

$sheet->getStyle('A1')

->getAlignment()

->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);


$sheet->getStyle('A1:C1')

->getAlignment()

->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);


//테두리 

//셀 전체(윤곽선 + 안쪽)

$objPHPExcel->getActiveSheet()->getStyle('B2:C3')->getBorders()

->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);


//윤곽선

$objPHPExcel->getActiveSheet()->getStyle('B5:C6')->getBorders()

->getOutline()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);


//안쪽

$objPHPExcel->getActiveSheet()->getStyle('B8:C9')->getBorders()

->getInside()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);


//세로선

$objPHPExcel->getActiveSheet()->getStyle('B11:D13')->getBorders()

->getVertical()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);


//가로선

$objPHPExcel->getActiveSheet()->getStyle('B15:D17')->getBorders()

->getHorizontal()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);



// Rename sheet

$sheet->setTitle("주문거래내역");


// 문서 열어볼시 미리 선택되어지는 셀 설정

$sheet->setSelectedCellByColumnAndRow(0, 1);


// 엑셀 파일 오픈시 활성화될 시트

$objPHPExcel->setActiveSheetIndex(0);


// 파일의 저장형식이 utf-8일 경우 한글파일 이름은 깨지므로 euc-kr로 변환해준다.

$filename = iconv("UTF-8", "EUC-KR", "한글 파일명");


// Redirect output to a client’s web browser (Excel5)

header('Content-Type: application/vnd.ms-excel');

header('Content-Disposition: attachment;filename="' . $filename . '.xls"');

header('Cache-Control: max-age=0');


$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

$objWriter->save('php://output');

exit;

?>