해당 소스는 그누보드5를 기준으로 작성한 예시이며, php 버전이 7.3 이하에서만 사용이 가능합니다.
그 이상 버전은 php spreadsheet 를 사용하라는데... 다운받는 기능이 쉽게 설명된 글이 있다면 소개좀 시켜주십쇼....
<?php
include_once("_common.php");
ini_set('memory_limit', -1);
include_once(G5_LIB_PATH.'/PHPExcel.php'); //해당 파일이 있어야해요!!
$objPHPExcel = new PHPExcel();
$sql = " select * from {테이블명} where 1=1 ";
$result = sql_query($sql);
$arr = array();
for($i=0; $row=sql_fetch_array($result); $i++){
$arr[$i+1] = array(
"res_date" => $row['res_date']
, "res_time" => $row['res_time']
, "res_name" => $row['res_name']
, "res_hp" => $row['res_hp']
, "res_car" => $row['res_car']
, "res_car_number" => $row['res_car_number']
, "res_influx" => $row['res_influx']
, "res_datetime" => $row['res_datetime']
);
}
$objPHPExcel -> setActiveSheetIndex(0)
-> setCellValue("A1", "NO.")
-> setCellValue("B1", "예약일.")
-> setCellValue("C1", "예약시간")
-> setCellValue("D1", "성함")
-> setCellValue("E1", "연락처")
-> setCellValue("F1", "차종")
-> setCellValue("G1", "차량번호")
-> setCellValue("H1", "유입경로")
-> setCellValue("I1", "신청일");
$count = 1;
foreach($arr as $key => $val) {
$num = 1 + $key;
$objPHPExcel -> setActiveSheetIndex(0)
-> setCellValue(sprintf("A%s", $num), $key)
-> setCellValue(sprintf("B%s", $num), $val['res_date'])
-> setCellValueExplicit(sprintf("C%s", $num), $val['res_time'])
-> setCellValue(sprintf("D%s", $num), $val['res_name'])
-> setCellValue(sprintf("E%s", $num), $val['res_hp'])
-> setCellValue(sprintf("F%s", $num), $val['res_car'])
-> setCellValue(sprintf("G%s", $num), $val['res_car_number'])
-> setCellValue(sprintf("H%s", $num), $val['res_influx'])
-> setCellValue(sprintf("I%s", $num), $val['res_datetime']);
$count++;
}
// 가로 넓이 조정
$objPHPExcel -> getActiveSheet() -> getColumnDimension("A") -> setWidth(6);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("B") -> setWidth(20);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("C") -> setWidth(20);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("D") -> setWidth(20);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("E") -> setWidth(20);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("F") -> setWidth(20);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("G") -> setWidth(25);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("H") -> setWidth(20);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("I") -> setWidth(30);
// 전체 가운데 정렬
$objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A1:I%s", $count)) -> getAlignment() -> setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
// 전체 테두리 지정
$objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A1:I%s", $count)) -> getBorders() -> getAllBorders() -> setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
// 타이틀 부분
$objPHPExcel -> getActiveSheet() -> getStyle("A1:I1") -> getFont() -> setBold(true);
$objPHPExcel -> getActiveSheet() -> getStyle("A1:I1") -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) -> getStartColor() -> setRGB("CECBCA");
// $objPHPExcel -> getActiveSheet() -> getRowDimension(1) -> setRowHeight(23);
// 내용 지정
$objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A2:I%s", $count)) -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) -> getStartColor() -> setRGB("F4F4F4");
// 시트 네임
$objPHPExcel -> getActiveSheet() -> setTitle("예약내역");
// 첫번째 시트(Sheet)로 열리게 설정
$objPHPExcel -> setActiveSheetIndex(0);
// 파일의 저장형식이 utf-8일 경우 한글파일 이름은 깨지므로 euc-kr로 변환해준다.
$filename = iconv("UTF-8", "EUC-KR", $excelName);
// 브라우저로 엑셀파일을 리다이렉션
header("Content-Type:application/vnd.ms-excel");
header("Content-Disposition: attachment;filename=".$filename.".xlsx");
header("Cache-Control:max-age=0");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter -> save("php://output");
?>
'php' 카테고리의 다른 글
배열에서 특정 요소 삭제하기 unset() (0) | 2022.05.14 |
---|---|
ajax 기본 / ajax Json (0) | 2022.03.26 |
php gd 라이브러리 image circle crop (0) | 2022.03.26 |
댓글