使用composer安装phpoffice/phpspreadsheet
composer require phpoffice/phpspreadsheet
<?php
//引入加载文件
require_once 'vendor/autoload.php';
// 创建一个新的Spreadsheet对象
$spreadsheet = new PhpOffice\PhpSpreadsheet\Spreadsheet();
// 获取活动的工作表
$sheet = $spreadsheet->getActiveSheet();
$header=['姓名','年龄'];//头部标题
//设置头部标题
foreach ($header as $i => $Htitle) {
$column_cell = 'A'.($i+1);
// 设置头部标题
$sheet->setCellValue($column_cell, $Htitle);
}
//示例数据,视业务而定
$data=[
[
"name"=>"张三",
"age"=>18
],
[
"name"=>"李四",
"age"=>20
]
];
$num = 2; //从第二行开始填充数据
foreach ($data as $i => $row) {
$row_cell = $num + $i;
// 设置单元格内容
$sheet->setCellValue('A'.$row_cell, $row['name']);
$sheet->setCellValue('B'.$row_cell, $row['age']);
}
// // 获取单元格样式对象
// $style = $sheet->getStyle('A1');
// // 获取并设置对齐方式
// $alignment = $style->getAlignment();
// $alignment->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT);
// // 应用样式
// $style->setAlignment($alignment);
// 导出或保存文件
$writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->setUseDiskCaching(true);//启动磁盘缓存
$writer->setIncludeCharts(false);//关闭图表
$writer->setPreCalculateFormulas(false);//关闭公式预计算
$writer->save('example.xlsx');//保存文件路径需使用绝对路径
?>
<?php
//引入加载文件
require_once 'vendor/autoload.php';
// 创建一个新的Spreadsheet对象
$spreadsheet = new PhpOffice\PhpSpreadsheet\Spreadsheet();
// 获取活动的工作表
$sheet = $spreadsheet->getActiveSheet();
//示例数据
$data = [
['姓名', '年龄', '城市'],
['张三', 25, '北京'],
['李四', 30, '上海'],
['王五', 28, '广州'],
];//填充数据应为二维数组
$sheet->fromArray($data, null, "A1");//从A1单元格开始填充
// 导出或保存文件
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');//使用工厂方法IOFactory::createWriter可创建导出不同格式的Excel文件
$writer->save('example.xlsx');//保存文件路径需使用绝对路径
?>
优化手段: