Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5-下载视图的Excel文件_Excel_Laravel 5_Xls_Download_Laravel Excel - Fatal编程技术网

Laravel 5-下载视图的Excel文件

Laravel 5-下载视图的Excel文件,excel,laravel-5,xls,download,laravel-excel,Excel,Laravel 5,Xls,Download,Laravel Excel,我正在为Laravel 5应用程序添加导出/下载功能。我找到了Laravel Excel库(),它看起来很完美——理想情况下,我将能够使用Laravel视图或html并制作一个可下载的Excel文件 到目前为止,我已经让创建和存储工作。我可以创建一个Excel文件,它很好(它是正确的数据和视图),在服务器上的storage/exports/I中可以看到“Report.xls”——这是正确的保存路径。我遇到的问题是,在创建文件后,我似乎无法通过浏览器下载该文件 Laravel Excel库有->下

我正在为Laravel 5应用程序添加导出/下载功能。我找到了Laravel Excel库(),它看起来很完美——理想情况下,我将能够使用Laravel视图或html并制作一个可下载的Excel文件

到目前为止,我已经让创建和存储工作。我可以创建一个Excel文件,它很好(它是正确的数据和视图),在服务器上的storage/exports/I中可以看到“Report.xls”——这是正确的保存路径。我遇到的问题是,在创建文件后,我似乎无法通过浏览器下载该文件

Laravel Excel库有->下载('xls')和->导出('xls')方法,但这些方法似乎只返回原始内容,在开发人员控制台中可见:

在右边,您可以看到文件是以“Report.xls”的形式创建和存储的,大概原始内容就是正确的内容——但我不知道为什么它只是将原始内容吐到控制台中。我可以在Excel中打开Report.xls文件,因此我知道它没有损坏

我还尝试使用Laravel 5 Response::download()函数并为下载设置标题,但它也会在控制台中吐出原始内容,而不是下载文件:

我使用的代码是一个命中控制器方法的AJAX调用,控制器方法只是触发一个名为“downloadReportFile()”的服务方法:

Excel文件中的视图是一个简单的表,与屏幕截图中的表相同。以下是视图的模板/HTML:

<div class="container full-width-container">
    <link href="http://192.168.33.10/css/reports.css" rel="stylesheet">

<div id="results" class="row">
    <div class="col-xs-12">

        <h2 class="report-title">Active Products </h2>
        <br>

        <div class="row">
            <div class="col-xs-12">

                <div class="table-responsive report-component" name="table" template="table">
                    <table id="report-table" class="table table-striped table-bordered table-hover">

                        <thead>
                            <tr>
                                <td class="report-table-th">ENGINE</td>
                                <td class="report-table-th">PRODUCT  COUNT</td>
                                <td class="report-table-th">PRODUCT  PRICE</td>
                            </tr>
                        </thead>
                        <tbody>
                            <tr class="results-cell">

                                <td class="report-table-cell">
                                        <p>Meows</p>
                                </td>


                                <td class="report-table-cell">
                                        <p>1,234</p>
                                </td>


                                <td class="report-table-cell">
                                        <p>781230.00</p>
                                </td>

                            </tr>
                        </tbody>
                        <tbody>
                            <tr class="results-cell">

                                <td class="report-table-cell">
                                        <p>Paws</p>
                                </td>


                                <td class="report-table-cell">
                                        <p>10,777</p>
                                </td>


                                <td class="report-table-cell">
                                        <p>3919823.00</p>
                                </td>

                            </tr>
                        </tbody>
                        <tbody>
                            <tr class="results-cell">

                                <td class="report-table-cell">
                                        <p>Meow Mobile</p>
                                </td>

                                <td class="report-table-cell">
                                        <p>177</p>
                                </td>

                                <td class="report-table-cell">
                                        <p>334323.00</p>
                                </td>

                            </tr>
                        </tbody>
                        <tbody>
                            <tr class="results-cell">

                                <td class="report-table-cell">
                                        <p>Tails Cloud</p>
                                </td>


                                <td class="report-table-cell">
                                        <p>335</p>
                                </td>


                                <td class="report-table-cell">
                                        <p>378918923.00</p>
                                </td>

                            </tr>
                        </tbody>
                    </table>
                </div>




            </div>
        </div>

    </div>
</div>

活性产物

引擎 产品数量 产品价格 喵喵叫

1234

781230.00

爪子

10777

3919823.00

喵喵移动

177

334323.00

尾云

335

378918923.00

有人看到我下载XLS文件时可能缺少的内容了吗? 谢谢你的时间

编辑
在做了更多的研究之后,我最初的下载工作流程——使用AJAX调用触发——似乎就是问题的一部分。例如,谈到AJAX将结果存储在JavaScript内存中,这将解释为什么我在控制台中获取内容而不是文件。

尝试在
Excel::create()之前添加下面的代码:

示例代码:

ob_end_clean();
ob_start();
Excel::create($filename, function($excel) use($records, $sheetname, $data) {}
这对我有用

ob_end_clean();
ob_start();
ob_end_clean();
ob_start();
Excel::create($filename, function($excel) use($records, $sheetname, $data) {}