导出到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()->