晨曦啊 晨曦啊

PHPExcel+ThinkPHP5 +ajax实现导入有合并的单元格并以tabel显示

in PHP 文章转载请注明来源!

要导入的excel如下,显示在网页的html也一样;但也只能按照这样的合并,横向不能合并,不合并的不能为空,还要改几下
搜狗截图18年01月05日2259_1.png
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));
}
jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

PHP
发表新评论
前篇 后篇
雷姆
拉姆