要导入的excel如下,显示在网页的html也一样;但也只能按照这样的合并,横向不能合并,不合并的不能为空,还要改几下
php代码
public function daoru{
vendor("PHPExcel.PHPExcel");
//获取表单上传文件
$file = request()->file('file');
$info = $file->validate(['ext'=>'xlsx,xls'])->move(ROOT_PATH . 'public' . DS . 'uploads' . DS);
//数据为空返回错误
if(empty($info)){
$result=array(
'code'=>40003,
'msg'=>'导入数据失败!请查看文件是否有问题!'
);
return json($result);
}
//获取文件名
$exclePath = $info->getSaveName();
//上传文件的地址
$filename = ROOT_PATH . 'public' . DS . 'uploads' . DS . $exclePath;
//echo $filename;
//判断截取文件
$extension = strtolower( pathinfo($filename, PATHINFO_EXTENSION) );
//区分上传文件格式
if($extension == 'xlsx') {
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($filename, $encode = 'utf-8');
}else if($extension == 'xls'){
$objReader =\PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($filename, $encode = 'utf-8');
}
$excel_array1 = $objPHPExcel->getsheet(0)->toArray(); //转换为数组格式
$tab.='<table border="1" ><tbody>';
$hang=count($excel_array1);
$h='';
$l='';
foreach($excel_array1 as $k => $v) {
$tab .= '<tr>';
foreach ($v as $ke => $vo) {
if ($excel_array1[$k+1<$hang?$k+1:$hang-1][$ke] == null && $excel_array1[$k][$ke] != null) {
$vaa=$excel_array1;
for($i=$k;$i>=-1;$i--){
unset($vaa[$i]);
}
foreach ($vaa as $kk=>$vv){
if($vv[$ke]==null){
$l++;
}elseif($vv[$ke]!=null){
break;
}
}
}
if(!empty($l)){
$tab .= '<td rowspan="' . ($l + 1) . '">' . $vo . '</td>';
$l='';
}elseif($v[$ke] == null){
}else{
$tab .= '<td >' . $vo . '</td>';
}
}
$tab .= '</tr>';
}
$tab.='<tr>';
foreach ($aa as $k=>$v){
$tab.='<td>'.$v.'</td>';
}
$tab.='</tr>';
$tab.='</tbody></table>';
return json(array('code'=>0,'data'=>$tab));
}