PhpSpreadsheet 是一個用于處理電子表格的 PHP 庫,它允許您創建、讀取和寫入多種電子表格文件格式,如 XLSX、CSV 和 ODS。然而,PhpSpreadsheet 本身并不支持直接創建或處理圖表。要使用 PhpSpreadsheet 創建圖表,您需要結合使用 PhpSpreadsheet 和另一個庫,例如 PhpSpreadsheet-Chart。
PhpSpreadsheet-Chart 是一個用于在 PhpSpreadsheet 中創建圖表的擴展庫。以下是一個簡單的示例,說明如何使用 PhpSpreadsheet 和 PhpSpreadsheet-Chart 創建一個柱狀圖:
composer require phpoffice/phpspreadsheet
composer require phpoffice/phpspreadsheet-chart
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Chart\Chart;
use PhpOffice\PhpSpreadsheet\Chart\DataSeries;
use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues;
use PhpOffice\PhpSpreadsheet\Chart\Type\BarChart;
// 創建一個新的電子表格對象
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
// 獲取當前活動的工作表
$worksheet = $spreadsheet->getActiveSheet();
// 添加數據到工作表
$data = [
['Category', 'Value'],
['A', 10],
['B', 20],
['C', 30],
['D', 40],
];
foreach ($data as $row) {
$worksheet->fromArray($row, null, 'A' . ($worksheet->getHighestRow() + 1));
}
// 創建一個新的圖表對象
$chart = new BarChart();
$chart->setType(BarChart::TYPE_BAR);
// 添加數據系列
$series = new DataSeries();
$series->setName('Sample Data');
$values = new DataSeriesValues();
$values->setWorksheet($worksheet)
->setFromArray(['A2', 'B2', 'C2', 'D2'])
->setMin(0)
->setMax(40);
$series->addData($values);
$chart->addSeries($series);
// 設置圖表標題和位置
$chart->setTitle('Sample Bar Chart');
$chart->setPlotArea([
'left' => 10,
'top' => 10,
'right' => 100,
'bottom' => 50,
])->setShowValue(true);
// 將圖表添加到工作表
$worksheet->addChart($chart, 'E2');
// 保存電子表格文件
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('chart.xlsx');
php create_chart.php
),它將生成一個名為 chart.xlsx
的文件,其中包含一個柱狀圖。這只是一個簡單的示例,您可以根據需要自定義圖表類型、數據和樣式。要了解更多關于 PhpSpreadsheet 和 PhpSpreadsheet-Chart 的信息,請參閱官方文檔: