[PHP] PHPExcel 시트 추가하기[PHP] PHPExcel 시트 추가하기

Posted at 2020. 2. 11. 20:06 | Posted in PHP/PHP Library




■ PHPExcel 시트 나누고 데이터 삽입하기



# 소스코드

<?php

include "./classes/PHPExcel.php";

$objPHPExcel = new PHPExcel();


$rocketPunch = array(


    // 첫번째 시트에 사용될 데이터 값

    "pinkPunch" => array(

          "1" => "PINK PUNCH"

        , "2" => "BIM BAM BUM"

        , "3" => "Love Is Over"

        , "4" => "Lucid Dream"

        , "5" => "Favorite"

        , "6" => "Do Something"

    )


    // 두번째 시트에 사용될 데이터 값

    , "redPunch" => array(

          "1" => "RED PUNCH"

        , "2" => "BOUNCY"

        , "3" => "So Solo"

        , "4" => "Fireworks"

        , "5" => "Paper Star"

        , "6" => "Lilac"

        , "7" => "Girl Friend"

    )

);


// @breif Worksheet 라는 이름으로 생성되는 기본 시트를 삭제한다.

$objPHPExcel -> removeSheetByIndex(0);


// @breif 생성할 시트의 순번

$sheetNum = 0;


foreach($rocketPunch as $title => $album) {


    // @breif createSheet( ) 함수로 새로운 시트를 생성한다.

    $objWorkSheet = $objPHPExcel -> createSheet($sheetNum);


    // @breif 엑셀 시트 이름 지정

    $objWorkSheet -> setTitle($title);


    // @breif 타이틀 영역 지정

    $objWorkSheet -> setCellValue("A1", "NO.");

    $objWorkSheet -> setCellValue("B1", "Song");


    // @breif 엑셀에 데이터 삽입

    $row = 1;

    foreach($album as $key => $val) {

        $row++;

        $objWorkSheet -> setCellValue(sprintf("A%s", $row), $key);

        $objWorkSheet -> setCellValue(sprintf("B%s", $row), $val);

    }


    // @breif 각 행의 간격

    $objWorkSheet -> getColumnDimension("A") -> setWidth(10);

    $objWorkSheet -> getColumnDimension("B") -> setWidth(30);


    // @breif 각 로우의 디자인

    $objWorkSheet -> getStyle(sprintf("A1:B%s", $row)) -> getAlignment() ->

    setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

    $objWorkSheet -> getStyle(sprintf("A1:B%s", $row)) -> getBorders() -> getAllBorders() ->

    setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

    $objWorkSheet -> getStyle("A1:B1") -> getFont() -> setBold(true);

    $objWorkSheet -> getStyle("A1:B1") -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) ->

    getStartColor() -> setRGB("CECBCA");

    $objWorkSheet -> getStyle(sprintf("A2:B%s", $row)) -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) ->

    getStartColor() -> setRGB("F4F4F4");


    // @breif 숫자앞에 기본적으로 0을 붙일 수 있게 한다.

    $objWorkSheet -> getStyle(sprintf("A2:A%s", $row)) -> getNumberFormat() -> setFormatCode("00");


    $sheetNum++;

}


// @breif 문서를 오픈할 시 첫번째 시트로 열리게 설정

$objPHPExcel -> setActiveSheetIndex(0);


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

$filename = iconv("UTF-8", "EUC-KR", "울림_로켓펀치");


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");

?>




# 출력결과









Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기