侧边栏壁纸
  • 累计撰写 198 篇文章
  • 累计创建 105 个标签
  • 累计收到 36 条评论

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

神兵小将
2022-03-21 / 0 评论 / 0 点赞 / 157 阅读 / 858 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-03-21,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

导语

今天使用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();
    }

}


0

评论区