Laravel Excel 导出数据时为0时显示空白的如何解决

Laravel Excel 导出数据时为0时显示空白的如何解决

Scroll Down

导语

今天使用Laravel-excel导出数据时,发现少一列数据,看了数据库,发现该列数据全为0(int类型),所以不显示,找到原因了,那好办了,尝试转一下类型。开干。

首先需要引入数据映射

类的接口添加一个WithMapping

use Maatwebsite\Excel\Concerns\WithMapping; 

class UsersExport implements WithMapping{  }

然后添加映射方法

# 必须引入
use PhpOffice\PhpSpreadsheet\Shared\StringHelper;

//映射数据
    public function map($user): array
    {
        return [
            $user->id,
            $user->username,
	    //解决0不显示
            StringHelper::formatNumber($user->status),
        ];
    }

至此,可以正常导出0了,只是把他的数据类型转换成了string.

附:完整源码如下。

<?php
namespace App\Exports;

use App\Models\User;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithMapping;
use PhpOffice\PhpSpreadsheet\Shared\StringHelper;//string格式转换助手类

class UsersExport implements FromQuery, WithMapping
{

    //映射数据
    public function map($user): array
    {
        return [
            $user->id,
            $user->username,
	    //解决0不显示
            StringHelper::formatNumber($user->status),
        ];
    }

    /**
     * 数据query
     */
    public function query()
    {
        return User::query();
    }

}