【问题标题】:PHPExcel open Excel file using ajax callPHPExcel使用ajax调用打开Excel文件
【发布时间】:2015-02-16 11:13:27
【问题描述】:

我正在使用 ajax 调用一个 php 文件,并将我想要写入 Excel 文件的数据传递。我不想在服务器上保存 Excel 文件,但想使用 $objWriter->save('php://output'); (PHPExcel 的一部分)在浏览器中打开它。

如果我将 ajax 脚本调用复制到我的浏览器(在我的 Web 应用程序之外),浏览器会创建该文件,并且浏览器会为用户提供打开/保存它的选项。

但是...当我在我的 Web 应用程序中通过 ajax 调用运行它时,什么也没有出现。

我看过很多帖子,人们有类似的问题,但它们与我想要做的并不完全相符。大多数似乎实际上是在服务器上创建文件,然后将文件名作为结果返回给 ajax 调用,然后打开该文件。因为我没有在服务器上创建文件,所以这对我不起作用。

有没有办法用 ajax、php 和 PHPExcel 来完成这个任务?有没有办法在 $objWriter->save('php://output') 语句中打开文件?

【问题讨论】:

  • 如果您发布您正在使用的(相关)代码可能会有所帮助。
  • 如果您想通过 Ajax 执行此操作,您的 Ajax 调用必须处理流式二进制响应;简单地使用下载链接要容易得多
  • 通过使用链接并不意味着我必须先将文件存储在服务器上,然后让该人单击链接以获取文件(除非我误解了您的意思) ?由于可能有多个人在使用这个应用程序并创建了相当多的 Excel 文件,因此我不想在服务器上实际创建这些文件——否则我必须执行某种清除程序来清理文件。

标签: php ajax phpexcel


【解决方案1】:

好吧,我解决了这个问题......我没有使用 ajax 调用来调用脚本,而是做了一个 window.open 并使用我用于 ajax 调用的脚本调用作为输入。所以它的作用是暂时打开一个窗口,作为回报调用 php 脚本(传递所有参数)。创建 Excel 文件后,窗口会关闭,但会为用户显示浏览器文件。所以除了一个窗口暂时闪烁之外,最终的结果是最初想要的。

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多