【发布时间】:2020-02-19 02:31:09
【问题描述】:
我正在使用laravel-excel 导出 csv 文件。导出,代码如下,
return Excel::download(new Export(results,$header), "test.csv");
Export.php 文件是这样的,
namespace App\AllClass;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithHeadings;
class Export implements FromCollection,WithHeadings
{
private $myArray;
private $header;
public function __construct($myArray,$header){
$this->myArray = $myArray;
$this->header = $header;
}
public function collection()
{
$data = mb_convert_encoding($this->myArray,"SJIS", "UTF-8");
// dump($data);
return collect($data);
}
public function headings(): array
{
$header = mb_convert_encoding($this->header,"SJIS", "UTF-8");
// dump($header);
return $header;
}
}
如您所见,我在创建 Excel 之前转换了数据。无需转换,我就可以完美地以 UTF-8 格式导出。但是转换为 shift-jis 后,它正在删除所有日文字符。但是,如果我在返回之前转储标题,它会向我显示乱码数据;不是像 csv 文件那样的空字符串。
【问题讨论】:
-
你解决了吗?我也面临同样的问题。
-
没有。这是一个古老的项目。我不记得细节,但后来我们决定使用 PhpSpreadsheet。比 laravel excel 好。
标签: laravel csv laravel-5.7 laravel-excel