[php] PHPSpreadsheet을 사용하여 그래프 및 차트 생성하기

PHPSpreadsheet은 PHP에서 Excel 파일을 생성하고 수정하는 기능을 제공하는 라이브러리입니다. 이를 사용하여 Excel 파일에 그래프 및 차트를 생성할 수 있습니다. 이 글에서는 PHPSpreadsheet을 사용하여 PHP에서 그래프 및 차트를 생성하는 방법을 알아보겠습니다.

1. PHPSpreadsheet 설치

먼저, PHPSpreadsheet을 설치해야 합니다. Composer를 사용하여 다음 명령을 실행하여 PHPSpreadsheet을 설치합니다.

composer require phpoffice/phpspreadsheet

2. 그래프 및 차트 생성

PHPSpreadsheet을 사용하여 Excel 파일을 만들고 그 안에 그래프 및 차트를 추가할 수 있습니다. 아래는 예제 코드입니다.

<?php
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

// 새 스프레드시트 생성
$spreadsheet = new Spreadsheet();

// 스프레드시트에 데이터 추가
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Data 1');
$sheet->setCellValue('A2', 30);
$sheet->setCellValue('B1', 'Data 2');
$sheet->setCellValue('B2', 50);

// 차트 생성
$chart = new \PhpOffice\PhpSpreadsheet\Chart\LineChart();
$dataSeriesLabels = [
    new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$1', NULL, 1),
];
$xAxisTickValues = [
    new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$3', NULL, 2),
];
$dataSeriesValues = [
    new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$1', NULL, 1),
];
$series = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries(
    \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_LINECHART,
    NULL,
    range(0, count($dataSeriesValues) - 1),
    $dataSeriesLabels,
    $xAxisTickValues,
    $dataSeriesValues
);
$categories = [
    new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$3', NULL, 2),
];
$chart->setXAxisTickValues($xAxisTickValues);
$chart->addSeries($series);

// 차트를 스프레드시트에 추가
$chart->setTopLeftPosition('D1');
$chart->setBottomRightPosition('K15');
$sheet->addChart($chart);

// Excel 파일로 저장
$writer = new Xlsx($spreadsheet);
$writer->save('chart_example.xlsx');

이 코드는 새로운 스프레드시트를 만들고 데이터를 추가한 후, 라인 차트를 생성하고 해당 차트를 스프레드시트에 추가한 뒤, Excel 파일로 저장하는 예제입니다.

결론

PHPSpreadsheet을 사용하여 PHP에서 그래프 및 차트를 생성하는 방법을 살펴보았습니다. 이를 통해 PHP 애플리케이션에서 Excel 파일에 그래프 및 차트를 포함시킬 수 있습니다.

참조: PHPSpreadsheet 공식 문서