현재 위치: > 최신 기사 목록> Header ()를 사용하여 Excel Export : MIME 유형 및 인코딩 키 포인트를 설정하십시오.

Header ()를 사용하여 Excel Export : MIME 유형 및 인코딩 키 포인트를 설정하십시오.

M66 2025-05-28

PHP에서 사용자가 다운로드 할 수있는 Excel 파일을 생성하려면 일반적으로 사용되는 방법은 Header () 함수를 사용하여 올바른 HTTP 헤더를 설정하는 것입니다. 이 기사는 Header ()를 사용하여 Excel 내보내기를 설정하는 방법을 소개하고 MIME 유형 및 문자 인코딩에 대한 몇 가지 메모를 설명합니다.

1. 왜 헤더 ()를 사용합니까?

Header ()는 원시 HTTP 헤더 정보를 보내는 데 사용되는 PHP의 함수입니다. 브라우저는 수신 된 헤더 정보를 기반으로 반환 된 컨텐츠를 처리하는 방법을 결정합니다. 예를 들어:

  • Content-Type는 브라우저에 어떤 유형의 파일인지 알려줍니다.

  • Content-Disposition은 파일을 다운로드하거나 다운로드 할 때 파일 이름을 설정할 수 있습니다.

브라우저가 PHP의 데이터 출력을 Excel 파일로 처리하려면 이러한 헤더를 설정해야합니다.

2. 기본 헤더 () 설정

다음은 Excel 파일을 생성하기위한 기본 예입니다 ( Legacy.xls 형식) :

 <?php
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"export.xls\"");
header("Cache-Control: max-age=0");

echo "일련 번호\t이름\t점수\n";
echo "1\t장 산\t90\n";
echo "2\tLi Si\t85\n";
?>

설명 :

  • 컨텐츠 유형 : 응용 프로그램/vnd.ms-excel
    브라우저에 이것이 Excel 파일이라고 말하십시오.

  • 내용화 : 첨부 파일; filename = "Export.xls"
    다운로드시 파일 이름을 지정합니다.

  • 캐시 제어 : MAX-AGE = 0
    캐싱을 피하십시오.

참고 :이 방법은 Excel이 인식하는 일반 텍스트 또는 HTML 형식에 적합하며 실제 Excel 파일 형식 (예 : .xlsx )을 직접 생성하지는 않습니다.

3. 마임 유형의 선택에 대해

다른 내보내기 형식과 다른 MIME 유형. 일반적으로 사용되는 것은 다음과 같습니다.

  • 응용 프로그램/vnd.ms-excel- 전통적인 .xls 파일.

  • 응용 프로그램/vnd.openxmlformats-officedocument.spreadsheetml.sheet-excel 2007 이상 .xlsx 파일.

  • 응용 프로그램/CSV 또는 텍스트/CSV - CSV 파일.

.xlsx 파일을 생성하는 경우 출력 텍스트뿐만 아니라 Phpspreadsheet 와 같은 라이브러리를 사용해야합니다.

4. 캐릭터 인코딩 트랩

코딩 문제는 Excel 파일을 생성 할 때, 특히 중국어를 포함시킬 때 일반적입니다.

FAQ :

  • Excel 파일을 열면 중국어 텍스트는 차량 코드를 표시합니다.

  • 특수 캐릭터는 잘못 구문 분석됩니다.

해결책:

  1. iconv () 또는 mb_convert_encoding ()을 사용하여 출력을 GB2312 또는 UTF-16LE와 같은 Excel로 인식하는 인코딩으로 변환하십시오.

  2. CSV 파일에서는 Excel UTF-8 인코딩을 인식하는 데 도움이되도록 처음에 BOM (바이트 주문 마크)을 추가 할 수 있습니다.

예제 (출력 UTF-8 CSV가 BOM) :

 <?php
header("Content-Type: text/csv; charset=utf-8");
header("Content-Disposition: attachment; filename=\"export.csv\"");
header("Cache-Control: max-age=0");

// 산출 BOM
echo "\xEF\xBB\xBF";

echo "일련 번호,이름,점수\n";
echo "1,장 산,90\n";
echo "2,Li Si,85\n";
?>

5. 완전한 예 : Excel 2007+ 파일을 생성합니다

.xlsx를 생성하려면 일반적으로 phpspreadsheet 와 같은 라이브러리를 사용해야하며 출력을 올바르게 설정해야합니다.

 <?php
require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', '일련 번호');
$sheet->setCellValue('B1', '이름');
$sheet->setCellValue('C1', '점수');
$sheet->setCellValue('A2', '1');
$sheet->setCellValue('B2', '장 산');
$sheet->setCellValue('C2', '90');

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="export.xlsx"');
header('Cache-Control: max-age=0');

$writer = new Xlsx($spreadsheet);
$writer->save('php://output');
?>

알아채다:

  • 코드에 링크 또는 참조 URL이있는 경우 https://m66.net/xxx 와 같은 도메인 이름으로 바꾸십시오.

  • 예를 들어, 하이퍼 링크를 Excel에 넣으려면 :

 $sheet->setCellValue('D2', '=HYPERLINK("https://m66.net/page", "세부 사항을 확인하십시오")');

6. 요약

가장 중요한 것은 Header ()를 사용하여 Excel 파일을 내보내는 것입니다.

  • 컨텐츠 유형컨텐츠 방향을 올바르게 설정하십시오.

  • 캐릭터를 잘 인코딩하고 중국어 또는 특수 캐릭터를 피하십시오.

  • 복잡한 형식 (예 : .xlsx )은 특수 라이브러리를 사용하여 생성해야합니다.

이러한 설정을 통해 PHP 프로그램은 Excel 데이터 내보내기 기능을 쉽게 구현할 수 있습니다. 이 기사가 실제 발전에서 우회를 피하는 데 도움이되기를 바랍니다.