【问题标题】:Laravel ajax return excel instead of binary stringLaravel ajax 返回 excel 而不是二进制字符串
【发布时间】:2021-02-20 16:31:49
【问题描述】:

我正在使用 laravel。我尝试创建一个 Excel 文件,并将数据添加到其中并将其作为 Excel 文件下载(导出)到客户端。

但不是下载 Excel 文件,而是返回一个字符串。

有人可以帮帮我吗?

提前致谢。

我的控制器代码

use Maatwebsite\Excel\Facades\Excel;
public function exportreport(Request $request){
 $file = "users.xlsx";  
 return Excel::download(new reportExport, $file);
}

我的导出代码

use App\cqqueryformModel;
    class reportExport implements FromCollection
    {
        public function collection(){      
                return cqqueryformModel::all();
            }
    }

返回的是字符串而不是 Excel 文件:

控制台日志:

console.log

【问题讨论】:

  • 您不能通过 ajx 下载 excel。只需打开一个包含路线的新选项卡,然后它将下载 excel
  • 向我们展示 ajax 调用
  • $.ajax({ url: "{{ url('/cqreportModel/exportreport') }}", type: 'GET', data: { account: account, rStatus: rStatus, rfrom: rfrom, rto: rto, rtop: rtop } , }).done(function (data) { console.log(data); if (data.error) { showMessage('error','请填写所有过滤字段!' ); }else{ } }).fail(function (data) { console.log('Failed'); showMessage('error','请检查你的连接!'); });
  • 我明白了并在地址上尝试它并下载文件
  • 感谢现在我将研究“laravel ajax 打开新选项卡与获取路线”再次感谢

标签: excel ajax laravel laravel-5 eloquent


【解决方案1】:

感谢@Nipun,它有效。

 .done(function (data) {         
              var url = "{{ url('/cqreportModel/exportreport') }}";
                    window.open(url, "_blank"); 
             })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 2021-05-09
    • 2020-10-15
    相关资源
    最近更新 更多