본문 바로가기

밥벌이관련/php

PHPExcel.php

include_once('./PHPExcel-1.8/Classes/PHPExcel.php');
$objPHPExcel = new PHPExcel();
$sql = "쿼리문";
$result = mysql_query($sql);
// 칼럼 생성
$objPHPExcel->setActiveSheetIndex(0)
			->setCellValue("A1", "칼럼1")
			->setCellValue("B1", "칼럼2")
			->setCellValue("C1", "칼럼3")
			->setCellValue("D1", "칼럼4")
			->setCellValue("E1", "칼럼5")
			->setCellValue("F1", "칼럼6")
			->setCellValue("G1", "칼럼7")
			->setCellValue("H1", "칼럼8");
//############################################################################
//############################# 스타일 설정 start #############################
//############################################################################
// 첫번째 제목 라인 폰트 bold
$objPHPExcel->getActiveSheet()->getStyle('A1:K1')->getFont()->setBold(true);
// 첫번째 제목 라인 폰트 배경색 지정
$objPHPExcel->getActiveSheet()->getStyle('A1:K1')->getFill()->applyFromArray(
	array (
		'type'       => PHPExcel_Style_Fill::FILL_SOLID,
		'color' => array (
			'rgb' => 'dadada'
		)
	)
);
// 첫번째 제목 라인 border 
$objPHPExcel->getActiveSheet()->getStyle('A1:K1')->getBorders()->applyFromArray(
	array(
		'allborders' => array(
			'style' => PHPExcel_Style_Border::BORDER_THIN,
			'color' => array(
				'rgb' => '000000'
			)
		)
	)
);
// 첫번째 제목 라인 스크롤시 고정 처리
$objPHPExcel->getActiveSheet()->freezePane('A2');
//############################################################################
//#############################  스타일 설정 END  #############################
//############################################################################
// 데이터 삽입
for ($i=2; $row=mysql_fetch_array($result); $i++) { 
	$objPHPExcel->setActiveSheetIndex(0)
				->setCellValue("A$i", $row['데이터'])
				->setCellValue("B$i", $row['데이터'])
				->setCellValue("C$i", $row['데이터'])
				->setCellValue("D$i", $row['데이터'])
				->setCellValue("E$i", $row['데이터'])
				->setCellValue("F$i",$row['데이터'])
				->setCellValue("G$i", $row['데이터'])
				->setCellValue("H$i", $row['데이터']);
}
// 칼럼 넓이 지정 - AUTO
for ($col = 'A'; $col !== 'L'; $col++) {
    $objPHPExcel->getActiveSheet()->getColumnDimension($col)->setAutoSize(true);
}
// 시트명 설정
$objPHPExcel->getActiveSheet()->setTitle('point');
// 엑셀파일 오픈시 첫번쨰로 보여줄 시트 인덱스 설정 
$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');
$xlsData = ob_get_contents();
ob_end_clean();
$response =  array(
	'status' => 'success',
	'url' => "data:application/vnd.ms-excel;base64,".base64_encode($xlsData)
);
// 성공여부 FILE URL return후 종료
die(json_encode($response));

'밥벌이관련 > php' 카테고리의 다른 글

[XAMPP]HOW TO SET UP MULTIPLE VIRTUAL HOST  (0) 2018.02.27
Google Shortener API  (0) 2017.09.28
파일 존재 유무 체크  (0) 2017.06.23