laravel-excel设置单元格格式及ignoreEmpty的用法

10 篇文章 0 订阅

laravel导入导出excel的插件:mattwebsite/excel

安装:

composer require mattwebsite/excel

文档:https://laravel-excel.maatwebsite.nl/3.1/getting-started/installation.html

 注意:3.0没有导入模块只有导出功能

/**
 *注意:设置单元格格式为数字的必须保证所设置的单元格里面的数据为数字型
 */
public function exportExcel()
    {
        Excel::create('导出excel的文件名(不含后缀)',function ($excel){
            $excel->sheet('test',function ($sheet){
                $sheet->fromArray(
                    [
                        ['姓名','年龄','性别','电话'],
                        [123000,0.36,'lisy',123699],
                        [123,0.36,'lisy','--'],
                        [123000,0.36,'lisy',123699],
                    ],null, 'A1', true, false
                );

                $sheet->setColumnFormat(
                    array(
                        'B2:B3'=>'0.0000%',
                        'D2'=>'#,##0',
                        'A'=>'#,##0',

                    )
                );
            });
        })->export('xlsx');
    }

可设置的单元格格式

@文本型
0数字型
0.00保留两位小数
#,##0千分位整数
#,##0.00千分位保留两位小数
0.00%百分数保留两位小数

更多的格式:https://laravel-excel.maatwebsite.nl/2.1/reference-guide/formatting.html

// Format column as percentage
$sheet->setColumnFormat(array(
    'C' => '0%'
));

// Format a range with e.g. leading zeros
$sheet->setColumnFormat(array(
    'A2:K2' => '0000'
));

// Set multiple column formats
$sheet->setColumnFormat(array(
    'B' => '0',
    'D' => '0.00',
    'F' => '@',
    'F' => 'yyyy-mm-dd',
));

注:有时候设置整列单元格格式如上,设置B列的所有的单元格可能不会成功,
原因在于excel2007 xlsx整列有2的20次行,太大,导致失败,一般可支持到65536,
但最好不要整列设置,按需设置,比如A2:A5,减少对内存的消耗

导入excel解析的时候,excel部分空格会解析为null,如果忽略null,则会导致解析出来的数组的部分行的数据出现向左偏移

 在app/config/packages/maatwebsite/excel/import.php中

'ignoreEmpty' => false,//不忽略null

另外使用ignoreEmpty()函数也可以

$sheet->ignoreEmpty(false);//默认为true

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值