我正在使用 PHPSpreadsheet 库在 PHP 中生成 excel 文件。当我直接调用 url 'http://10.150.18.22/ppc/dicreport.php?report_date=2022-10-07&report_type=Daily_Report' 时,excel 文件已成功生成。但是当通过 AJAX 调用调用相同的 url 时,
在浏览器控制台上生成以下输出。
Ajax 调用:
<script>
$("#generateReportForm").on("submit", function (e) {
e.preventDefault();
var report_date=$('#report_date').val();
var report_type=$('#report_type').val();
console.log(report_date);
console.log(report_type);
$.ajax({
url: "dicreport.php?report_date="+report_date+"&report_type="+report_type,
type: "GET",
data: $("#generateReportForm").serialize(),
success: function (response) {
console.log(response);
},
});
});
</script>
dicreport.php
<?php
$REPORT_DATE=$_GET['report_date'];
$REPORT_TYPE=$_GET['report_type'];
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$spreadsheet->getDefaultStyle()
->getFont()
->setName('Arial')
->setSize(10);
$file=$REPORT_TYPE."_".$REPORT_DATE.".xlsx";
header('Content-disposition: attachment; filename='.$file);
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$writer = IOFactory::createWriter($spreadsheet,'Xlsx');
$writer->save('php://output');
?>
试试这个。
$REPORT_DATE=$_GET['report_date']; $REPORT_TYPE=$_GET['report_type'];
确保它们都按预期显示它们的价值。通过您的 PHP 脚本打印它的值来做到这一点。