ThinkPHP 是一个流行的 PHP 开发框架,它提供了丰富的功能和组件,用于简化 Web 应用的开发过程。导出数据到 Excel 表是常见的需求,通常用于数据备份、报表生成等场景。
以下是一个使用 ThinkPHP 导出数据到 XLSX 格式的示例代码:
<?php
namespace app\index\controller;
use think\Controller;
use think\facade\Db;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class ExportController extends Controller
{
public function export()
{
// 查询数据
$data = Db::name('table_name')->select();
// 创建一个新的 Spreadsheet 对象
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// 设置表头
$headers = ['ID', 'Name', 'Email'];
$sheet->fromArray($headers, null, 'A1');
// 填充数据
$row = 2;
foreach ($data as $item) {
$sheet->setCellValue('A' . $row, $item['id']);
$sheet->setCellValue('B' . $row, $item['name']);
$sheet->setCellValue('C' . $row, $item['email']);
$row++;
}
// 导出文件
$writer = new Xlsx($spreadsheet);
$filename = 'export_data.xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
$writer->save('php://output');
exit();
}
}通过以上方法,可以有效地解决在 ThinkPHP 中导出数据到 Excel 表时可能遇到的问题。