먼저 MySQL 데이터베이스 및 쿼리에 연결하십시오. ID , 이름 및 전자 메일 과 같은 필드를 포함하여 사용자 라는 데이터베이스에 이미 이미 테이블이 있다고 가정합니다.
<?php
// 데이터베이스 연결 설정
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// 연결을 만듭니다
$conn = new mysqli($servername, $username, $password, $dbname);
// 연결을 확인하십시오
if ($conn->connect_error) {
die("연결이 실패했습니다: " . $conn->connect_error);
}
// 쿼리 데이터
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
?>
다음으로 PHP를 사용하여 쿼리 결과를 CSV 파일로 내 보냅니다. mysqli_result 객체의 데이터는 라인별로 추출되어 CSV 파일에 기록됩니다.
<?php
// 쿼리 결과가 존재하는 경우
if ($result->num_rows > 0) {
// 파일 이름을 설정합니다
$filename = "users_data_" . date("Ymd_His") . ".csv";
// 응답 헤더를 설정하십시오,브라우저에 파일을 다운로드하도록 지시하십시오
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '"');
// 출력 스트림을 엽니 다
$output = fopen('php://output', 'w');
// 헤더에 쓰십시오
$header = ['ID', 'Name', 'Email'];
fputcsv($output, $header);
// 데이터 행을 작성하십시오
while ($row = $result->fetch_assoc()) {
fputcsv($output, $row);
}
// 출력 스트림을 끕니다
fclose($output);
}
?>
Excel 파일을 직접 생성하는 것이 조금 더 복잡하지만 타사 라이브러리 PHPEXCEL 또는 PHPSPREADSEET를 통해 달성 할 수 있습니다. 이 두 라이브러리는 쿼리 결과를 .xls 또는 .xlsx 형식의 파일로 내보내는 풍부한 기능을 제공합니다.
다음은 Excel을 내보내는 기본 예입니다. 먼저 phpspreadsheet를 설치해야합니다.
composer require phpoffice/phpspreadsheet
그런 다음 PHP의 다음 코드를 사용하여 데이터를 내보내십시오.
<?php
// 소개 PhpSpreadsheet 수업 도서관
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// 새 스프레드 시트 객체를 만듭니다
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// 테이블 헤더 설정
$sheet->setCellValue('A1', 'ID');
$sheet->setCellValue('B1', 'Name');
$sheet->setCellValue('C1', 'Email');
// 데이터를 작성하십시오
$rowNum = 2;
while ($row = $result->fetch_assoc()) {
$sheet->setCellValue('A' . $rowNum, $row['id']);
$sheet->setCellValue('B' . $rowNum, $row['name']);
$sheet->setCellValue('C' . $rowNum, $row['email']);
$rowNum++;
}
// 파일 이름을 설정합니다
$filename = "users_data_" . date("Ymd_His") . ".xlsx";
// 응답 헤더를 설정하십시오,브라우저에 파일을 다운로드하도록 지시하십시오
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
// 만들다 Writer 물체
$writer = new Xlsx($spreadsheet);
// 출력 파일
$writer->save('php://output');
?>
인쇄를 위해 데이터 테이블을 사용자에게 제시하려면 쿼리 결과를 HTML 테이블로 출력 할 수 있습니다. 사용자는 브라우저의 인쇄 기능을 사용하여 직접 인쇄 할 수 있습니다.
<?php
// 쿼리 결과가 존재하는 경우
if ($result->num_rows > 0) {
echo '<table border="1">';
echo '<thead>';
echo '<tr><th>ID</th><th>Name</th><th>Email</th></tr>';
echo '</thead>';
echo '<tbody>';
// 출력 데이터 라인
while ($row = $result->fetch_assoc()) {
echo '<tr>';
echo '<td>' . $row['id'] . '</td>';
echo '<td>' . $row['name'] . '</td>';
echo '<td>' . $row['email'] . '</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
// 인쇄 버튼을 추가하십시오
echo '<br><button onclick="window.print()">양식을 인쇄하십시오</button>';
}
?>
이러한 방식으로 사용자는 인쇄 버튼을 클릭하여 페이지 내용을 테이블 양식으로 인쇄 할 수 있습니다.