Laravel 5-下载视图的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: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库有->下
<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) {}