테스트 사이트 - 개발 중인 베타 버전입니다

게시판 엑셀 다운로드 채택완료

ghlee 2년 전 조회 2,850

엑셀이라는 폴더를 만들어서 그안에 다운로드.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개

채택된 답변
+20 포인트
2년 전

$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개

g
ghlee
2년 전
최고입니다 정말 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

코드자체에는 특별히 문제가 없어 보이는데요~

@세크티 님의 답변처럼 common.php 의 경로를 수정해 보세요.

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

세크티
2년 전

common.php가 제대로 불러와지나요?

include_once('../common.php');

이렇게 바꿔보세요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인