728x90
반응형
■ PHP PHPExcel 엑셀 다운로드 기능 (.xls, .xlsx 차이)
■ .xls 다운로드
.xls 엑셀 파일로 다운로드하게 할 경우 createWriter 함수 2번째 변수를 Excel5 로 설정해줘야 함
<?php
require_once $_SERVER['DOCUMENT_ROOT']."PHPExcel/Classes/PHPExcel.php";
ini_set("memory_limit" , -1);
@set_time_limit(0);
// EXCEL START
$objPHPExcel = new PHPExcel();
$sheet = $objPHPExcel->getActiveSheet();
// 타이틀 셋팅
$objPHPExcel-> setActiveSheetIndex(0)
-> setCellValue("A1", "id")
-> setCellValue("B1", "title")
-> setCellValue("C1", “description)
;
// 셀 가로크기 지정
$sheet->getColumnDimension('A')->setWidth(30);
$sheet->getColumnDimension('B')->setWidth(30);
$sheet->getColumnDimension('C')->setWidth(15);
// 타이틀 스타일 (중앙정렬,B)
$objPHPExcel->getActiveSheet()->getStyle('A1:C1')->applyFromArray(
array(
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER
)
,'font' => array( 'bold' => true )
)
);
// 틀 고정 (A1행까지 고정)
$objPHPExcel->getActiveSheet()->freezePane('A2');
for( $i=1; $i<=3; $i++ ){
$objPHPExcel->setActiveSheetIndex(0)
-> setCellValue("A".($i+1), ‘id’.$i)
-> setCellValue("B".($i+1), ‘title’.$i)
-> setCellValue("C".($i+1), ‘desc’.$i)
;
}
// 시트 이름 설정
$sheet->setTitle(“Sample Sheet”);
// EXCEL 파일명
$excel_name = “Sample.xls”;
// EXCEL OUTPUT
header( "Content-type: application/vnd.ms-excel; charset=utf-8");
header( "Content-type: application/x-msexcel; charset=utf-8");
header('Content-Disposition: attachment;filename="' . $excel_name . '"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel5");
$objWriter->save('php://output');
?>
■ .xlsx 다운로드
.xlsx 엑셀 파일로 다운로드하게 할 경우 createWriter 함수 2번째 변수를 Excel2007 로 설정해줘야 함
+ 최상단 header 추가 (utf-8)
<?php
header("Content-Type:text/html;charset=utf-8");
require_once $_SERVER['DOCUMENT_ROOT']."PHPExcel/Classes/PHPExcel.php";
ini_set("memory_limit" , -1);
@set_time_limit(0);
// EXCEL START
$objPHPExcel = new PHPExcel();
$sheet = $objPHPExcel->getActiveSheet();
// 타이틀 셋팅
$objPHPExcel-> setActiveSheetIndex(0)
-> setCellValue("A1", "id")
-> setCellValue("B1", "title")
-> setCellValue("C1", “description)
;
// 셀 가로크기 지정
$sheet->getColumnDimension('A')->setWidth(30);
$sheet->getColumnDimension('B')->setWidth(30);
$sheet->getColumnDimension('C')->setWidth(15);
// 타이틀 스타일 (중앙정렬,B)
$objPHPExcel->getActiveSheet()->getStyle('A1:C1')->applyFromArray(
array(
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER
)
,'font' => array( 'bold' => true )
)
);
// 틀 고정 (A1행까지 고정)
$objPHPExcel->getActiveSheet()->freezePane('A2');
for( $i=1; $i<=3; $i++ ){
$objPHPExcel->setActiveSheetIndex(0)
-> setCellValue("A".($i+1), ‘id’.$i)
-> setCellValue("B".($i+1), ‘title’.$i)
-> setCellValue("C".($i+1), ‘desc’.$i)
;
}
// 시트 이름 설정
$sheet->setTitle(“Sample Sheet”);
// EXCEL 파일명
$excel_name = “Sample.xlsx”;
// EXCEL OUTPUT
header( "Content-type: application/vnd.ms-excel; charset=utf-8");
header( "Content-type: application/x-msexcel; charset=utf-8");
header('Content-Disposition: attachment;filename="' . $excel_name . '"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007");
$objWriter->save('php://output');
?>
728x90
반응형
'PHP' 카테고리의 다른 글
[PHP] Cross-Origin Request Headers(CORS) Header 설정 (2) | 2024.04.08 |
---|---|
[PHP] php 문자열 역슬래시 제거 stripslashes() (0) | 2023.07.20 |
[PHP] MsSQL 연동하여 쿼리 실행하기 sqlsrv (0) | 2022.11.04 |
[PHP] PHPExcel 엑셀 스타일 (정렬, 틀고정) 자주 쓰는 함수 (0) | 2022.08.05 |
[PHP] PHPExcel 엑셀 다운로드 기능 (0) | 2022.08.05 |