php实现报表
PHP实现报表的方法
使用PHPExcel或PhpSpreadsheet库生成Excel报表
PhpSpreadsheet是PHPExcel的继任者,支持生成Excel、CSV等格式报表。安装可通过Composer:composer require phpoffice/phpspreadsheet。
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', '报表标题');
$sheet->setCellValue('A2', '数据1');
$sheet->setCellValue('B2', '数据2');
$writer = new Xlsx($spreadsheet);
$writer->save('report.xlsx');
使用TCPDF或FPDF生成PDF报表
TCPDF支持复杂的PDF生成,适合需要打印的报表。安装:composer require tecnickcom/tcpdf。
require_once('tcpdf/tcpdf.php');
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->SetFont('helvetica', 'B', 16);
$pdf->Cell(0, 10, '报表标题', 0, 1);
$pdf->SetFont('helvetica', '', 12);
$pdf->Cell(0, 10, '数据内容', 0, 1);
$pdf->Output('report.pdf', 'D');
使用HTML和CSS生成网页报表
结合PHP和HTML/CSS可直接生成网页报表,适合在线查看。
$data = ['标题' => '销售报表', '内容' => '2023年数据'];
echo '<html><head><title>报表</title><style>table { border-collapse: collapse; }</style></head>';
echo '<body><h1>'.$data['标题'].'</h1><table border="1"><tr><th>项目</th><th>值</th></tr>';
echo '<tr><td>内容</td><td>'.$data['内容'].'</td></tr></table></body></html>';
使用Chart.js等库生成图表报表
结合PHP后端数据与前端图表库,实现可视化报表。
$chartData = json_encode(['labels' => ['1月', '2月'], 'data' => [100, 200]]);
echo '<canvas id="myChart"></canvas><script src="https://cdn.jsdelivr.net/npm/chart.js"></script>';
echo '<script>new Chart(document.getElementById("myChart"), { type: "bar", data: { labels: '.$chartData['labels'].', datasets: [{ data: '.$chartData['data'].' }] } });</script>';
使用数据库查询生成动态报表
从MySQL等数据库获取数据生成报表。
$conn = new PDO("mysql:host=localhost;dbname=test", "user", "pass");
$stmt = $conn->query("SELECT * FROM sales");
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<table border="1"><tr><th>ID</th><th>销售额</th></tr>';
foreach ($results as $row) {
echo '<tr><td>'.$row['id'].'</td><td>'.$row['amount'].'</td></tr>';
}
echo '</table>';
使用定时任务生成定期报表
结合Cron实现自动报表生成。
# 在Cron中添加(每天凌晨执行)
0 0 * * * /usr/bin/php /path/to/report_script.php
以上方法可根据需求组合使用,例如用PhpSpreadsheet生成Excel后通过邮件发送,或结合数据库与Chart.js实现动态图表。







