게시판 엑셀 다운로드
본문
엑셀이라는 폴더를 만들어서 그안에 다운로드.php
<?php
include_once('./common.php');
if ($is_admin != 'super') {
alert('관리자만 접근 가능합니다.');
}
// PhpSpreadsheet 라이브러리 로드
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
// 데이터베이스에서 게시판 목록을 가져옵니다.
$sql = "SELECT wr_1, wr_subject, wr_content, wr_2, wr_3, wr_name FROM {$g5['write_prefix']}board_table WHERE bo_table = '게시판ID'";
$result = sql_query($sql);
$rows = array();
while ($row = sql_fetch_array($result)) {
$rows[] = $row;
}
// PhpSpreadsheet 객체를 생성합니다.
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// 엑셀 파일의 첫 번째 행에 컬럼 이름을 씁니다.
$sheet->setCellValue('A1', 'wr_1');
$sheet->setCellValue('B1', 'wr_subject');
$sheet->setCellValue('C1', 'wr_content');
$sheet->setCellValue('D1', 'wr_2');
$sheet->setCellValue('E1', 'wr_3');
$sheet->setCellValue('F1', 'wr_name');
// 데이터를 엑셀 파일에 씁니다.
$rowNum = 2;
foreach ($rows as $row) {
$sheet->setCellValue('A' . $rowNum, $row['wr_1']);
$sheet->setCellValue('B' . $rowNum, $row['wr_subject']);
$sheet->setCellValue('C' . $rowNum, $row['wr_content']);
$sheet->setCellValue('D' . $rowNum, $row['wr_2']);
$sheet->setCellValue('E' . $rowNum, $row['wr_3']);
$sheet->setCellValue('F' . $rowNum, $row['wr_name']);
$rowNum++;
}
// 엑셀 파일을 브라우저로 전송합니다.
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="board_list.xlsx"');
header('Cache-Control: max-age=0');
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
exit;
?>
이렇게 했는데 다운로드가 안되는데 혹시 잘못되었거나 아니면 어디서 설정하는 값이 있을까요 >?
고수님들 답변 부탁드립니다. 꾸벅 ( _ _ )
답변 3
$sql = "SELECT wr_1, wr_subject, wr_content, wr_2, wr_3, wr_name FROM {$g5['write_prefix']}board_table WHERE bo_table = '게시판ID'"; <==이게 잘못 되었습니다. 다음처럼 하세요
$write_table= $g5['write_prefix'].'게시판ID';
$sql = "SELECT wr_1, wr_subject, wr_content, wr_2, wr_3, wr_name FROM $write_table ";
common.php가 제대로 불러와지나요?
include_once('../common.php');
이렇게 바꿔보세요