readExcel($file); $frag = []; $fraz = []; $frad = []; foreach ($res as $k => $v) { if ($v['level'] == '高风险') { if (!isset($frag[$v['p']][$v['city']]['area'])) { isset($frag[$v['p']]) ?: $frag[$v['p']] = []; isset($frag[$v['p']][$v['city']]) ?: $frag[$v['p']][$v['city']] = []; $frag[$v['p']][$v['city']]['area'] = []; $frag[$v['p']][$v['city']]['area'][] = $v['area']; } else { if (!in_array($v['area'], $frag[$v['p']][$v['city']]['area'])) { $frag[$v['p']][$v['city']]['area'][] = $v['area']; } } } if ($v['level'] == '中风险') { if (!isset($fraz[$v['p']][$v['city']]['area'])) { isset($fraz[$v['p']]) ?: $fraz[$v['p']] = []; isset($fraz[$v['p']][$v['city']]) ?: $fraz[$v['p']][$v['city']] = []; $fraz[$v['p']][$v['city']]['area'] = []; $fraz[$v['p']][$v['city']]['area'][] = $v['area']; } else { if (!in_array($v['area'], $fraz[$v['p']][$v['city']]['area'])) { $fraz[$v['p']][$v['city']]['area'][] = $v['area']; } } } if ($v['level'] == '低风险') { if (!isset($frad[$v['p']][$v['city']]['area'])) { isset($frad[$v['p']]) ?: $frad[$v['p']] = []; isset($frad[$v['p']][$v['city']]) ?: $frad[$v['p']][$v['city']] = []; $frad[$v['p']][$v['city']]['area'] = []; $frad[$v['p']][$v['city']]['area'][] = $v['area']; } else { if (!in_array($v['area'], $frad[$v['p']][$v['city']]['area'])) { $frad[$v['p']][$v['city']]['area'][] = $v['area']; } } } } $fg = []; foreach ($frag as $k => $v) { foreach ($v as $k1 => $v1) { $c['p'] = $k; $c['city'] = $k1; $c['area'] = implode(',', $v1['area']); $fg[] = $c; } } $fz = []; foreach ($fraz as $k => $v) { foreach ($v as $k1 => $v1) { $c['p'] = $k; $c['city'] = $k1; $c['area'] = implode(',', $v1['area']); $fz[] = $c; } } $fd = []; foreach ($frad as $k => $v) { foreach ($v as $k1 => $v1) { $c['p'] = $k; $c['city'] = $k1; $c['area'] = implode(',', $v1['area']); $fd[] = $c; } } // //生成excel // $obj_phpexcel = new PHPExcel(); //创建类实例 // $obj_phpexcel->setActiveSheetIndex(0); //设置当前页 // dump($fg); // dump($fz); // dump($fd); $PHPWord = new PhpWord(); $section = $PHPWord->createSection(); $PHPWord->addTitleStyle(1, array('bold' => true, 'size' => 18, 'name' => 'Arial', 'Color' => '333'), array('align' => 'center')); $section->addTitle("疫情防控", 1); //定义样式数组 $styleTable = array( 'borderSize' => 6, 'borderColor' => '000000', 'cellMargin' => 150 ); $styleFirstRow = array( 'borderBottomSize' => 18, 'borderBottomColor' => '000000', 'bgColor' => '66bbff' ); $cellStyle = array('gridSpan' => 2); //添加表格样式 $PHPWord->addTableStyle('myOwnTableStyle', $styleTable, $styleFirstRow); //添加表格 $table = $section->addTable('myOwnTableStyle'); $table->addRow(); $table->addCell(3000)->addText('测试1'); $table->addCell(3000)->addText('测试2'); $table->addCell(3000)->addText('测试3'); $table->addRow(); $table->addCell(3000)->addText('测试4'); $table->addCell(6000, $cellStyle)->addText('测试5'); //合并列单元格 $table->addRow(); $table->addCell(3000, array('vMerge' => 'restart'))->addText('合并'); $table->addCell(3000, array('vMerge' => 'restart'))->addText('测试6'); $table->addCell(3000)->addText('测试7'); $table->addRow(); $table->addCell(3000, array('vMerge' => 'continue')); $table->addCell(3000)->addText('测试8'); $table->addCell(3000)->addText('测试9'); $table->addRow(); $table->addCell(3000)->addText('测试10'); $table->addCell(3000)->addText('测试11'); $table->addCell(3000)->addText('测试12'); $file = '测试.docx'; //文档存在服务器上用此代码 $objWriter = IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('存储地址/编程爱好者.docx'); //直接下载不存储在服务器上用此代码 header("Content-Description: File Transfer"); header('Content-Disposition: attachment; filename="' . $file . '"'); header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document'); header('Content-Transfer-Encoding: binary'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Expires: 0'); $xmlWriter = IOFactory::createWriter($PHPWord, 'Word2007'); $xmlWriter->save("php://output"); } /** * 读取excel数据 */ private function readExcel($path) { $extension = substr($path, strrpos($path, '.') + 1); vendor("PHPExcel.PHPExcel"); if ($extension == 'xlsx') { $objReader = new \PHPExcel_Reader_Excel2007(); $objPHPExcel = $objReader->load($path); } else if ($extension == 'xls') { $objReader = new \PHPExcel_Reader_Excel5(); $objPHPExcel = $objReader->load($path); } $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); $frag = []; for ($i = 3; $i <= $highestRow; $i++) { // $aa['username'] = $objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue(); // $aa['has'] = '未出证'; // if($aa['username']==''){ // continue; // } $aa['p'] = $objPHPExcel->getActiveSheet()->getCell("B" . $i)->getValue(); $aa['city'] = $objPHPExcel->getActiveSheet()->getCell("C" . $i)->getValue(); $aa['area'] = $objPHPExcel->getActiveSheet()->getCell("D" . $i)->getValue(); $aa['address'] = $objPHPExcel->getActiveSheet()->getCell("E" . $i)->getValue(); $aa['level'] = $objPHPExcel->getActiveSheet()->getCell("F" . $i)->getValue(); $frag[] = $aa; } return $frag; } }