使用Laravel与Vue.js进行Excel导出

时间:2019-06-29 17:27:09

标签: laravel vue.js laravel-5

我正在使用Laravel和Vuejs进行Excel导出,代码以某种方式返回了真值,但无法下载Excel文件,如果我正常请求它将下载文件,但是在axios请求中,它将不会导出文件< / p>

我正在使用php artisan make:export来导出文件

在App / Export / studentexport.php中

public function collection()
{
    return Student_master::all();
}

然后在控制器中我将执行功能

public function export()
{
    return Excel::download(new StudentExport, 'users.xlsx');
}

在我的Vue文件中,我将编写一个代码来调用控制器并导出文件

axios.get('api/export')
            .then(()=>{
                toast({
                    type: 'success',
                    title: 'Export the Data'
                })
            })
            .catch(()=> {
                toast({
                        type: 'warning',
                        title: 'Can not Export'
                        })
            })

但是结果是这样的

那将返回True,我真的不知道该如何解决,请帮助我

2 个答案:

答案 0 :(得分:1)

我认为有点晚了,但是我遇到了同样的问题,我才解决了。

要从vuejs下载文件,您不应将请求作为Axios请愿书提出(至少我不知道)。相反,您可以在模板中使用href和download属性。

这是一个示例:

<a
    type="button"
    href="/api/export/entity/"
    download="file.xlsx"
>
    <button
        @click="export()"
        class="btn btn-primary"
    >
    Export
    </button>
</a>

如果您需要做其他事情,该方法会有所帮助。

希望对您有帮助。

答案 1 :(得分:0)

好,我解决了这个问题,我使用Vue-excel-export软件包将导出Excel文件

magick

此链接可以帮助我安装软件包并使用它