Php 使用控制器下载Laravel Excel

Php 使用控制器下载Laravel Excel,php,angularjs,laravel,export,laravel-excel,Php,Angularjs,Laravel,Export,Laravel Excel,所以我创建了一个PHP控制器来处理JS发布的导出数据。问题是我可以看到它在控制台中创建了一些东西,但文件下载从未开始。我尝试使用->存储(laravel excel)并将其保存在导出文件夹中,但在尝试使用 return \Response::download($result); 它仍然无法开始下载。我遇到的问题是如何开始下载。 角度控制器 $scope.exportMatrix = function () { var postData = {list: $scope.list, mat

所以我创建了一个PHP控制器来处理JS发布的导出数据。问题是我可以看到它在控制台中创建了一些东西,但文件下载从未开始。我尝试使用->存储(laravel excel)并将其保存在导出文件夹中,但在尝试使用

return \Response::download($result);
它仍然无法开始下载。我遇到的问题是如何开始下载。

角度控制器

$scope.exportMatrix = function () {
    var postData = {list: $scope.list, matrix: $scope.matrix};
    $http({
        method: 'POST',
        url: '/export',
        dataType: 'obj',
        data: postData,
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).success(function (data) {
        console.log(data);
    }).error(function (data) {
        console.log("failed");
    });
}
<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App;
use Excel;
use Response;
class ExportController extends Controller {

public function export()
{

    $excel = App::make('excel');

    Excel::create('Test', function($excel) {
        $excel->setTitle('new awesome title');

        $excel->sheet('Sheet', function($sheet) {
            $sheet->fromArray(array(
                array('data1', 'data2'),
                array('data3', 'data4')
            ));
        });


    })->export('xlsx');
}
路线

Route::post('/export', 'ExportController@export');
PHP控制器

$scope.exportMatrix = function () {
    var postData = {list: $scope.list, matrix: $scope.matrix};
    $http({
        method: 'POST',
        url: '/export',
        dataType: 'obj',
        data: postData,
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).success(function (data) {
        console.log(data);
    }).error(function (data) {
        console.log("failed");
    });
}
<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App;
use Excel;
use Response;
class ExportController extends Controller {

public function export()
{

    $excel = App::make('excel');

    Excel::create('Test', function($excel) {
        $excel->setTitle('new awesome title');

        $excel->sheet('Sheet', function($sheet) {
            $sheet->fromArray(array(
                array('data1', 'data2'),
                array('data3', 'data4')
            ));
        });


    })->export('xlsx');
}
路由::get('/export','ExportController@export');

最后,我常常下载它发回的blob,所以只需加载FileSaver并使用它saveAs(blob)

我一定要用

响应类型:arraybuffer

和另存为类型:

“application/vnd.openxmlformats of iceDocument.spreadsheetml.sheet”


因为原因。

是不是
下载('xlsx')
不是
导出
?我忘了提到我试过下载('xlsx')以及导出这会抛出一大堆错误�QĿi!��K�y3�JOk所以我很确定这是因为我将响应发送回javascript控制器,然后需要由JS启动下载(例如使用新Blob([data],{type:'application/xls'});),所以我想接下来的问题是如何使用laravel/excel和角度数据创建有效的导出控制器。因为它似乎使事情变得比实际需要复杂得多。我想将角度数据发送到导出控制器,并使用laravel excel创建和下载它。您解决了这个问题吗?我也遇到了同样的问题。回复栏真的帮了我的忙