PHPExcel : generating error due to php output?

标签 php javascript jquery ajax phpexcel

使用 PHPExcel 构建我的电子表格后,我无法打开“另存为”或“打开”对话框。我从 PHPExcel 库附带的示例目录中获得了以下代码片段。

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="01simple.xlsx"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;

我的 JavaScript:

$(document).on('submit', '#myForm', function(e) {
        $.post('mail.php', $(this).serialize(), function (data) {
            $('.signature-field,.notes').hide();
            //SUCCESS
            $('.successORfail').html(data);
                setTimeout(function(){
                    $(".successORfail").fadeOut("slow", function () {
                        $(".successORfail").empty().show();
                    });
                }, 4500);
        }).error(function() {
            alert("Fatal Error: mail.php not found!");
        });
        e.preventDefault();
    });

注意:上面的代码会生成警告消息“ fatal error :找不到 mail.php!”我设置的。除此之外,它不会生成任何错误消息,不会保存或创建 excel 文件。

当我使用以下方法时,没有任何标题,excel 文件被完美创建,并保存在服务器上,没有任何错误:

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('MyExcel.xlsx');

我真的很感激任何解决此错误的帮助,因为我已经为此工作了很长时间。

非常感谢!

最佳答案

您实际上无法按照您尝试的方式来执行此操作。 Javascript 本身无法在用户系统上启动文件下载(由于安全问题)。我知道至少有一个 jQuery 插件可以提供类似 AJAX 的下载体验。你可以看看这个:

http://johnculviner.com/post/2012/03/22/Ajax-like-feature-rich-file-downloads-with-jQuery-File-Download.aspx

关于PHPExcel : generating error due to php output?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14247117/

相关文章:

javascript - mac safari 上的右移运算符不起作用

javascript - 我正在尝试使用 jquery 创建一个包含列的 div,但我无法让我的数组正确格式化

javascript - 在动态选择选项时使用 jQuery 验证表单

javascript - 网格内的多个单元格编辑

javascript - Mongoose 对象的键与属性名称不同

javascript - 如何覆盖从另一个脚本加载的可变参数

php - 选择一个不同的值计数及其自身的值 1 查询

php - 将脚本从 C 迁移到 PHP

php - 浮点类型在数据库结构中添加额外的数字

php - 在 header() 之前完成运行 php 函数