>백엔드 개발 >PHP 문제 >PHP에서 csv를 xls로 변환하는 방법

PHP에서 csv를 xls로 변환하는 방법

PHPz
PHPz원래의
2023-03-20 15:35:081807검색

실제 개발 과정에서 CSV 형식의 데이터를 Excel 형식(XLS 또는 XLSX)으로 변환해야 할 수도 있습니다. CSV 파일은 단순한 텍스트 파일이고 Excel 파일은 데이터 필터링, 정렬, 차트 표시 등과 같은 더 많은 기능을 지원하기 때문입니다. PHP는 CSV 및 Excel 처리를 위한 강력한 함수 라이브러리를 제공합니다. 다음은 PHP를 사용하여 CSV 파일을 Excel 파일로 변환하는 방법을 소개합니다.

  1. CSV 파일 읽기

PHP는 CSV 파일을 읽고 각 줄을 배열로 구문 분석하는 fgetcsv() 함수를 제공합니다. 다음은 CSV 파일을 읽는 예입니다.

$csvFile = 'data.csv';
if(!file_exists($csvFile)) {
    die("File not found");
}
$fp = fopen($csvFile, 'r');
if(!$fp) {
    die("Error opening file");
}
$data = array();
while($row = fgetcsv($fp)) {
    $data[] = $row;
}
fclose($fp);

이 코드는 먼저 CSV 파일이 있는지 확인한 후 파일을 열고 fgetcsv() 함수를 사용하여 파일의 각 줄을 읽고 결과를 배열에 저장합니다.

  1. Excel 파일 만들기

PHPExcel은 Excel 파일을 만들고 조작하기 위한 매우 강력한 PHP 확장입니다. PHPExcel을 다운로드하여 PHP 프로젝트에 포함시킬 수 있습니다. 빈 Excel 파일을 만드는 방법은 다음과 같습니다.

require_once 'PHPExcel.php';

$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('Sheet1');

이 코드는 PHPExcel을 사용하여 빈 Excel 파일을 만들고 기본 워크시트를 설정합니다.

  1. CSV 데이터를 Excel 파일로 가져오기

PHPExcel의 setCellValue() 메서드를 사용하면 CSV 파일의 데이터를 Excel 파일로 가져올 수 있습니다. 다음은 샘플 코드입니다.

require_once 'PHPExcel.php';

$csvFile = 'data.csv';
if(!file_exists($csvFile)) {
    die("File not found");
}
$csvData = file_get_contents($csvFile);
$data = array_map("str_getcsv", preg_split('/\r*\n+|\r+/', $csvData));

$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('Sheet1');

$row = 1;
foreach($data as $fields) {
    $col = 0;
    foreach($fields as $value) {
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
        $col++;
    }
    $row++;
}

이 코드는 먼저 file_get_contents() 함수를 사용하여 CSV 파일의 내용을 읽은 다음 preg_split() 함수를 사용하여 파일 내용을 2차원 배열로 분할합니다. 다음으로 PHPExcel의 setCellValueByColumnAndRow() 함수를 사용하여 데이터를 Excel 파일로 가져옵니다.

  1. Excel 파일 저장

마지막으로 PHPExcel의 save() 메소드를 사용하여 파일을 XLS 또는 XLSX 형식으로 저장합니다. 다음은 전체 샘플 코드입니다.

require_once 'PHPExcel.php';

$csvFile = 'data.csv';
if(!file_exists($csvFile)) {
    die("File not found");
}
$csvData = file_get_contents($csvFile);
$data = array_map("str_getcsv", preg_split('/\r*\n+|\r+/', $csvData));

$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('Sheet1');

$row = 1;
foreach($data as $fields) {
    $col = 0;
    foreach($fields as $value) {
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
        $col++;
    }
    $row++;
}

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('data.xls');

이 코드는 데이터를 PHPExcel 개체로 가져오고 PHPExcel_IOFactory의 createWriter() 메서드를 사용하여 PHPExcel 개체를 XLS 형식의 파일로 저장하기 위한 Excel5Writer 개체를 생성합니다. 주의할 점은 Excel2007 형식(XLSX)을 사용하려면 Excel5를 Excel2007로 변경해야 한다는 점입니다.

요약

위는 CSV 파일을 Excel 파일로 변환하는 전체 과정입니다. 먼저 CSV 파일을 읽은 다음 데이터를 PHPExcel 개체로 가져온 다음 PHPExcel 개체를 Excel 파일로 저장합니다. 실제 애플리케이션에서는 데이터의 무결성과 정확성을 보장하기 위해 가져온 데이터에 대한 형식 확인 및 정리를 수행해야 할 수도 있습니다.

위 내용은 PHP에서 csv를 xls로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.