여기서의 방법은 fputcsv를 사용하여 CSV 파일을 작성하고 Excel 파일을 브라우저에 직접 출력하는 것입니다.
코드 복사 코드는 다음과 같습니다.
// Excel 파일 헤더를 출력합니다. user.csv를 대체할 수 있습니다. 원하는 파일 이름
header('Content-Type: application/vnd.ms-excel')
header('Content-Disposition: attachment;filename="user.csv"'); >header('Cache -Control: max-age=0');
// 데이터베이스에서 데이터를 가져옵니다. 메모리를 절약하려면 데이터를 한 번에 메모리에 읽어들이지 마세요.
$sql = ' select * from tbl where
$stmt = $db->query($sql)
// PHP 파일 핸들 열기, php:// 출력은 브라우저에 직접 출력하는 것을 의미합니다
$fp = fopen('php://output', 'a')
// 엑셀 열 이름 정보 출력
$head = array('Name', '성별', '나이', '이메일', '전화', '...')
foreach ($head as $i => $v) {
// CSV용 Excel은 GBK를 지원합니다. 인코딩하지 않으면 코드가 깨집니다.
$head[$i] = iconv('utf-8', 'gbk', $v)
}
// 데이터 쓰기 fputcsv를 통해 파일 핸들
fputcsv($fp, $head )
//Counter
$cnt = 0
// $limit 줄마다 출력 버퍼를 새로 고칩니다. , 너무 작지 않음
$limit = 100000;
// 메모리 낭비 없이 행 단위로 데이터 가져오기
while ($row = $stmt->fetch(Zend_Db::FETCH_NUM)) {
$cnt;
if ($limit == $cnt ) { //너무 많은 데이터로 인해 발생하는 문제를 방지하기 위해 출력 버퍼를 새로 고칩니다.
ob_flush()
flush(); 0;
}
foreach($row as $i => $v) {
$row[$i] = iconv('utf-8', 'gbk', $v); 🎜>}
fputcsv($fp, $row) ;
}
장점: 간단하고 사용하기 쉽고 메모리를 많이 절약하며 제3자에 의존하지 않습니다. 파티 도서관.
위 내용은 엑셀2010 공식 다운로드인 PHP를 사용하여 MySQL 데이터를 엑셀 파일 fputcsv로 내보내는 방법을 소개한 것입니다. 무료 정식 버전에는 무료 정식 버전인 excel2010 공식 다운로드 내용이 포함되어 있습니다. PHP 튜토리얼에 관심이 있습니다.