• laravel


    标签:合并指定单元格,表格单元格全部自动换行,单个单元格换行,设置宽度等

    效果图:

    // 代码

    public function exportAll($result)
    {
       // $result =》 查询出来的数组

    Excel::create('订单详细数据', function($excel) use ($result){

    $excel->sheet('订单详细数据', function($sheet) use ($result) {

           // 导出的表格全部单元格进行自动换行
           $sheet->getStyle('A:T')->getAlignment()->setWrapText(TRUE);

    // 设置单元格宽度
    $sheet->setWidth(array(
    'A' => 20,
    'B' => 20,
    'C' => 20,
    'D' => 20,
    'E' => 50,
    'F' => 10,
    'G' => 10,
    'H' => 10,
    'I' => 10,
    'J' => 30,
    'K' => 10,
    'L' => 10,
    'M' => 10,
    'N' => 20,
    'O' => 20,
    'P' => 20,
    'Q' => 15,
    'R' => 15,
    'S' => 15,
    'T' => 15,
    ));

    // 设置单元格标题加粗居中
    $sheet->cells('A1:T1', function($cells) {
    $cells->setFontWeight('bold');
    $cells->setAlignment('center');
    $cells->setValignment('center');
    });

    // 设置单元格居中
    $sheet->cells('A:T', function($cells) {
    $cells->setAlignment('center');
    $cells->setValignment('center');
    });

    // 设置单元格标题名称
    $sheet->row(1, [
    '订单编号',
    '下单时间',
    '支付时间',
    '支付方式',
    '商品名称',
    '订货数量',
    '实发数量',
    '实收数量',
    '单价',
    '包装物信息',
    '商品总额',
    '押金金额',
    '优惠金额',
    '支付的上次欠款金额',
    '当前订单欠款金额',
    '当前订单已退金额',
    '商品总金额',
    '支付总金额',
    '送货总金额',
    '收货总金额',
    ]);

    $i = 1;
    foreach ($result as $value) {
              // 统计订单商品
    $count = count($value['order_goods']);
              // 循环订单商品
    foreach ($value['order_goods'] as $v) {
    $i++;
    $sheet->row($i,
                [
                 $value['id'].' ',
                $value['created_at'],
                    $value['payment_at'],
                $paymentTypesOptions[$value['payment_type']],
                $v['is_replenishment'] == 1 ? '【补】' . $v['title'] : $v['title'],
                $v['buy_num'] . $v['unit'],
                $v['deliver_num'] . $v['unit'],
                $v['receive_num'] . $v['unit'],
                $v['unit_price'] . '/' . $v['unit'],
                '¥' . $v['deposit_amount']. " ".$v['package']. '/¥'.$v['package_price']. '/1'.$v['package_unit'], // 单个单元格换行,使用:" "
                     $v['real_amount'],
                bcadd($value['deposit_amount'], $value['replenishment_deposit_amount'], 2),
                $value['coupon_amount'],
                 $value['arrear_amount'],
                $value['arrear_goods_amount'],
                $value['refund_goods_amount'],
                $value['goods_amount'],
                $value['pay_amount'],
                 $value['deliver_amount'],
                 $value['receive_amount'],
                ]
               );
    }

              // 如果订单商品数据大于1,怎进行单元格合并
    if ($count > 1) {
    $sheet->mergeCells('A'.($i+1-$count).':A'.$i);
    $sheet->mergeCells('B'.($i+1-$count).':B'.$i);
    $sheet->mergeCells('C'.($i+1-$count).':C'.$i);
    $sheet->mergeCells('D'.($i+1-$count).':D'.$i);
    $sheet->mergeCells('L'.($i+1-$count).':L'.$i);
    $sheet->mergeCells('M'.($i+1-$count).':M'.$i);
    $sheet->mergeCells('N'.($i+1-$count).':N'.$i);
    $sheet->mergeCells('O'.($i+1-$count).':O'.$i);
    $sheet->mergeCells('P'.($i+1-$count).':P'.$i);
    $sheet->mergeCells('Q'.($i+1-$count).':Q'.$i);
    $sheet->mergeCells('R'.($i+1-$count).':R'.$i);
    $sheet->mergeCells('S'.($i+1-$count).':S'.$i);
    $sheet->mergeCells('T'.($i+1-$count).':T'.$i);
    }
    }
    });
    })->export('xlsx');
    }


  • 相关阅读:
    fadeIn()与fadeOut()方法
    js常用正则表达式(经典)
    正则表达式大全
    slideDown()和slideUp()方法
    toggle()显示/隐藏的用法
    skip-grant-tables 修改linux的mysql忘记root密码
    基于Vue、web3的以太坊项目开发及交易内幕初探 错误解决总结
    MySQL linux错误处理
    求职 firekylin
    如何编写一个可升级的智能合约
  • 原文地址:https://www.cnblogs.com/jiaoda/p/13294552.html
Copyright © 2020-2023  润新知