【问题标题】:Reactjs - Export to csv showing in encoded formatReactjs - 导出到以编码格式显示的 csv
【发布时间】: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


    【解决方案1】:

    @Nkunj 你能在记事本中打开看看吗,问题必须在你的 excel 设置中。

    好的,你可以试试这个: http://danml.com/download.html

    【讨论】:

    • 也尝试使用记事本。同样的错误。您可以在已编辑的问题中看到这一点
    • 使用此链接danml.com/download.html 并调用download(new Blob([productsData.data]), "dlTextBlob.csv");
    • 也可以通过console.log(productsData.data)查看,这里你会知道根本原因
    猜你喜欢
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多