【发布时间】:2020-12-28 17:35:15
【问题描述】:
我正在使用 maatwebsite 将记录导出到 CSV 文件。后端使用 php laravel。
这是我的以下代码:
控制器代码:
public static function exportCsvReport($params){
header('Content-Encoding: UTF-8');
header('Content-type: text/csv; charset=UTF-8');
return Excel::download(new UsersExport, 'invoices.xlsx');
}
用户导出模型:
<?php
namespace App\Exports;
use App\Models\Api\v1\Tbcall;
use Maatwebsite\Excel\Concerns\FromCollection;
class UsersExport implements FromCollection
{
public function collection()
{
return Tbcall::where('Row_Id',14407)->get();
}
}
?>
反应代码:
exportReporttoCsv(params){
this.setState({ isDataFetched: true }, async () => {
let productsData = await this.apiService.exportCsvReport(params);
const url = window.URL.createObjectURL(new Blob([productsData.data]));
const link = document.createElement('a');
link.setAttribute('href', 'data:text/csv');
link.href = url;
link.setAttribute('download', 'aaa1.csv'); //or any other extension
document.body.appendChild(link);
link.click();
});
}
输出:
在记事本中也试过。仍然显示编码数据。
文件正在下载,但打开文件时显示如下。
不知道出了什么问题。这里需要什么改变?任何答案将不胜感激。谢谢
【问题讨论】:
标签: php reactjs laravel laravel-5 eloquent