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 的信息,请参阅官方文档: