【问题标题】:Display progress bar while generating Excel file in php在php中生成Excel文件时显示进度条
【发布时间】:2015-06-16 11:30:19
【问题描述】:

我有一个 HTML 表单,当您通过单击按钮提交表单时,应用程序会使用 PHPExcel 生成一个 Excel 文件。一切正常,但是当 excel 文件很大时,等待时间很长。我想添加进度条或显示完成百分比值。我的问题是我不知道如何在表单中插入并不断更新。

这就是我想要完成的:

编辑:

我的代码是:

HTML 表单:

<form action="reporteexcel.php" name = "ExportForm" method="POST">
 <table>
[All different fields]
     <tr>
                <td style = "position:relative; top:1em;left:4em;">
                    <input type="submit"  value="Export to excel">
                    <input type="button" onclick="window.close();" value = "Cancel">
                </td>
            </tr>
        </table>

    </form>

在reporteexcel.php中:

include 'PHPExcel_1.8.0/Classes/PHPExcel.php';
    include 'F1_Export.php';
    include 'F2_Export.php';
if ($Family == "F1")
    {
        exportF2 ($BasicInformation, $SupplierInformation, $PhysicalParameters, $Supplier, $Family);
    }   
    else if ($Family == "F2")
    {
        exportF2 ($BasicInformation, $SupplierInformation, $PhysicalParameters, $Supplier, $Family);
    }

F1_export 和 F2_export 中是生成excel文件的函数。

【问题讨论】:

  • 如果您不想使用现有库,请对 AJAX 做一些研究。您的导出调用可以通过 AJAX 处理,这可以将更新返回到您当前的屏幕/表单。
  • 我已经尝试过了,但它不起作用(至少我不知道如何使它起作用;))。我在 HTML 中添加了一个
    ,我也添加了 AJAX 文件,但我不知道如何从我的 php 函数中持续更新该值...
  • 您必须检查 GenerateExcel() 是否会给您更新(我没有任何线索)。如果是这样,那么在这些更新中,您会将数据传回原始页面。该页面上的 Javascript 将解析信息并更新页面。
  • 您的第一步是创建一个不同的 PHP 文件来处理 Excel 文件。使用 AJAX 调用来调用它。然后让新的 PHP 文件发回原始 AJAX 调用可以处理和更新屏幕的响应。谷歌“简单的 AJAX 教程”——有很多东西可以帮助你入门。

标签: php html ajax phpexcel


【解决方案1】:

使用此库上传您的文件,您还可以显示上传进度条:http://blueimp.github.io/jQuery-File-Upload/

显示长时间运行的 PHP 脚本的进度:http://www.htmlgoodies.com/beyond/php/show-progress-report-for-long-running-php-scripts.html

【讨论】:

  • 嗨!我不想上传任何文件。我将数据保存在数据库中,然后生成一个 excel 文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-03
相关资源
最近更新 更多