PhpSpreadsheet不会促使本地保存

问题描述 投票:0回答:1

我有关于我想,我希望你能帮助我这个并不在其中工作的PHP库的一些问题。

我的程序首先调用通过Ajax返回一个.json.Then与given.json我需要将其保存在XLS服务excel文件,这个我在使用其他AJAX其调用PHP服务在本地保存它(generarExcel2 .PHP)

下面是我的HTML代码,实际上工作正常的JS / AJAX的一部分。

    $(document).ready(function () {
        var exceljsondatos;
        var path ="{{urlSf}}";
        $.ajax({
            type: "POST",
            url: path,
            dataType: 'json',
            success: function (data) { 
                exceljsondatos = data;
                $('#genExcel').click(function () {
                    $.ajax({
                        type: "POST",
                        url: "generarExcel2.php",
                        data: exceljsondatos,
                        success: function (resultado) {
                            $('#resp').html(" Function call successful"); }
                    });//End exel ajax call
                });//End click event
            }//End of success
        });//End ajax data call
    }); //End of  document ready

这显示了我的HTML正确的消息,如此看来,在这方面的工作。在我的PHP我已经通过正确的var_dump检查其recieving的$ _ POST内容,但来这里的主要问题。

我不能设法提示用户保存数据。我已经使用作家试图与IOFactory,没有在这里工作是PHP代码,以便你可以去看看。

   <?php
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;//Option1
//use PhpOffice\PhpSpreadsheet\Writer\Xls;//Option2
$filename="Excel_jano_test";
$spreadsheet = new Spreadsheet(); 
$excel_writer = IOFactory::createWriter($spreadsheet, 'Xls');//Option1
//$excel_writer = new Xls($spreadsheet); //Option2
$activeSheet = $spreadsheet->getActiveSheet();    
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'. $filename .'.xls"');
header('Cache-Control: max-age=0');

$activeSheet->setCellValue('A1' , 'NUM.SOLICITUD');//example for dummy
$excel_writer->save('php://output');//THIS SHOULD PROMPT USER

我试着最后一行更改为$ excel_writer->保存(“otherfile.xls”);它在服务器上正确保存更改。如果你能看到什么我不能,我将不胜感激。非常感谢!

还有一件事。我检查了,如果我的路线上单击如实际工作,并提示用户,但这样它不会是短暂的或recieving数据。

xls phpspreadsheet
1个回答
0
投票

“这是不可能的使用AJAX时强制下载。”找到这个答案在这里类似的问题:https://stackoverflow.com/a/10191727/10551975

无论如何,我仍然认为有可能是一个可能的解决方法这将是更受欢迎。我会离开这个开放几天,以防万一有人可以帮我给他的功劳。

编辑:最后我用一个空的形式,装载了与阿贾克斯的数据,然后使用定期提交按钮。不是我想要的,但工作得很好。

© www.soinside.com 2019 - 2024. All rights reserved.