基于FastAdmin自带的phpoffice组件
<?php
namespace app\api\controller;
use app\common\controller\Api;
class MyExcel extends Api
{
public function index()
{
set_time_limit(0);
//循环生成一个数组
for ($i = 0; $i <= 100; $i++) {
$arrData_org[] = [
'id' => $i + 1,
'name' => '用户' . ($i + 1)
];
}
//定义标题 表格第一行
$title = [
[
'编号', '用户'
],
];
//合并数组
$arrData = array_merge($title, $arrData_org);
//创建Spreadsheet对象
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
// 设置单元格格式 可以省略
$styleArray = [
'font' => [
'bold' => true,
'size' => 14,
],
];
$spreadsheet->getActiveSheet()->getStyle('A1:B1')->applyFromArray($styleArray);
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(25);
$spreadsheet->getActiveSheet()->fromArray($arrData);
//使用Spreadsheet对象的写入能力
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
//使用UTF-8保存数据
$writer->setUseBOM(true);
//保存文件
$writer->save('test.csv');
//终止
$this->success('导出文件完成');
}
}