thinkphp导出到excel,合并拆分单元格!

本文介绍了如何使用ThinkPHP实现Excel导出时的单元格合并和拆分,以满足特定的表格布局需求。通过示例代码展示了如何重组数据并处理表头,最终达到合并和不合并特定单元格的效果。文章鼓励读者分享优化建议,共同学习进步。
摘要由CSDN通过智能技术生成

导出到excel合并拆解单元格操作(奇怪操作)

接到需求做一个奇怪的产品表格,时间紧任务重,开始演示,目的以下样式在这里插入图片描述
目标确定开始操作!
首先数据格式为图中,我们需要先分析出这应该是一条数据但是需要合并company_list的数据在这里插入图片描述重组数据代码 分割成两条数据

		$newlist = [];
        // 重组数组
        foreach ($new_arr1 as $k=>$v){
   
            $temp = $v;
            $tempSix = $v['company_list'];
            $temp['company_list'] = '';
            foreach ($tempSix as $kk => $vv) {
   
                $temp['company_list'] = $vv;
                $newlist[] = $temp;
            }
        }

得到的数据为在这里插入图片描述
然后我们再进行去导出,赋值直接贴代码:

 $objActSheetIndex
        ->setCellValue('A1', 'ID')
        ->setCellValue('B1', '订单编号')
        ->setCellValue('C1', '时间')
        ->setCellValue('D1', '客户单位')
        ->setCellValue('E1', '客户联系人')
        ->setCellValue('F1', '合同类型')
        ->setCellValue('G1', '合同主体')
        ->setCellValue('H1', '销售人员')
        ->setCellValue('I1', '合同类容')
        ->setCellValue('I2', '产品名称')
        ->setCellValue('J2', '数量')
        ->setCellValue('K2', '成本单价')
        ->setCellValue('L2', '供应商')
        ->setCellValue('M2', '销售单价')
        ->setCellValue('N2', '备注')
        ->setCellValue('O1', '订单状态')
        ->setCellValue('P1', '成本')
        ->setCellValue('Q1', '合同金额')
        ->setCellValue('R1', '利润');
    $new_arr1 = array_values($new_arr1);
    $new_arr2 = array_values($new_arr1);
    $count = count($newlist);  //计算有多少条数据
    $new_arr1 = $newlist;
    for ($i = 3; $i <= $count+2; $i++) {
   
        $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $new_arr1[$i-3]['id']);
        $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $new_arr1[$i-3]['order_no']);
        $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $new_arr1[$i-3]['create_time']);
        $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $new_arr1[$i-3]['company']);
        $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $new_arr1[$i-3]['personnel']);
        $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $new_arr1[$i-3]['contract_name']);
        $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $new_arr1[$i-3]['contract_subject']);
        $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $new_arr1[$i-3]['salesman']);
        $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $new_arr1[$i-3]['company_list']['goods_name']);
        $objPHPExcel->getActiveSheet()->setCellValue('j' . $i, $new_arr1[$i-3]['company_list']['goods_num']);
        $objPHPExcel->getActiveSheet()->setCellValue('k' . $i, $new_arr1[$i-3]['company_list']['goods_cost']);
        $objPHPExcel->getActiveSheet()->
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值