게시판 엑셀 다운로드 채택완료
엑셀이라는 폴더를 만들어서 그안에 다운로드.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 ";
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인