laravel-excel 数字字段变成科学计数(真)

<?php

namespace App\Services\Export;

use App\Models\TestReportService;
use Illuminate\Contracts\Support\Responsable;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Events\AfterSheet;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;

/**
 * 记录导出
 * Class TmpExport
 * @package App\Services\Export
 */
class TmpExport implements FromCollection, Responsable, WithHeadings,WithEvents, WithColumnFormatting
{
    use Exportable;

    // 导出的文件名, 更多属性请参考github laravel-excel官方文档
    private $fileName = 'Test.xls';

    /**
     * 要导出的数据
     * @var array $data
     */
    protected $data;

    /**
     * TeacherUserExport constructor.
     * @param array $data
     */
    public function __construct(array $data)
    {
        $this->data = $data;
    }

    // 导出标题
    public function headings(): array
    {
        return [
            '姓名',
            '身份证号',
            '姓名',
            '姓名',
            '姓名',
            '姓名',
            '姓名',
            '姓名',
            '姓名',
            '姓名',
            '姓名',
        ];
    }

    // 导出数据集
    public function collection()
    {
        return collect($this->data);
    }
    
    public function columnFormats(): array
    {
        return [
            'B' => '#0',  //格式化保留0位
        ];
    }

    public function registerEvents(): array
    {
        return [
            AfterSheet::class    => function(AfterSheet $event) {
            $event->sheet->getDelegate()->getColumnDimension('A')->setWidth('15');
            $event->sheet->getDelegate()->getColumnDimension('B')->setWidth('30');
            $event->sheet->getDelegate()->getColumnDimension('C')->setWidth('15');
            $event->sheet->getDelegate()->getColumnDimension('D')->setWidth('13');
            $event->sheet->getDelegate()->getColumnDimension('E')->setWidth('16');
            $event->sheet->getDelegate()->getColumnDimension('F')->setWidth('15');
            $event->sheet->getDelegate()->getColumnDimension('G')->setWidth('20');
            $event->sheet->getDelegate()->getColumnDimension('H')->setWidth('15');
            $event->sheet->getDelegate()->getColumnDimension('I')->setWidth('15');
            $event->sheet->getDelegate()->getColumnDimension('J')->setWidth('20');
            $event->sheet->getDelegate()->getColumnDimension('K')->setWidth('20');
            },
        ];
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值