• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

phpexecl导出 循环时间问题

php 搞代码 3年前 (2022-01-25) 12次浏览 已收录 0个评论

做php导出,需要循环输出数据到execl中,一开始写了一个,觉得时间有点长,就缩短了下,发现时间还变多了,求教这是为什么啊?谢谢了先。

原先的代码片段:

<code>//归总每个一级分类下的二级分类foreach($first_cate_array as $fkey => $fvalue){    foreach($cate as $ck=>$cv){                                     if($cv['parentid'] == $fvalue['id']){            $first_cate_array[$fkey]['second_cate'][] = $cv;        }    }    //获得每个一级分类下二级分类的数目    $second_count = count($first_cate_array[$fkey]['second_cate']);     $first_cate_array[$fkey]['second_count'] = $second_count == 0 ? 1 : $second_count;  }/*************************************************************************/foreach($first_cate_array as $fk => $fv){    //一级目录起始行数    if($fk == 0){        $stapos = $num;        $en_stapos = $stapos+$cate_count;    }else{        $stapos = $stapos+$first_cate_array[$fk-1]['second_count'];        $en_stapos = $stapos+$cate_count;    }    foreach($fv['second_cate'] as $sck => $scv){        //二级目录起始行数        $stapos1 = $stapos+$sck;        $en_stapos1 = $en_stapos+$sck;        foreach($scv['pro'] as $spk => $spv){            $str1 = 70+$spk*3;            $str1 = chr($str1);            $str2 = 71+$spk*3;            $str2 = chr($str2);            $str3 = 72+$spk*3;            $str3 = chr($str3);            //中文            $collect = $spv['name'].'('.$spv['description'].')';            $objActSheet->setCellValue($str1.$stapos1, $collect);            $objActSheet->setCellValue($str2.$stapos1, $spv['name']);            $objActSheet->setCellValue($str3.$stapos1, $spv['description']);            //英文            $en_collect = $spv['en_name'].'('.$spv['en_description'].')';            $objActSheet->setCellValue($str1.$en_stapos1, $en_collect);            $objActSheet->setCellValue($str2.$en_stapos1, $spv['en_name']);            $objActSheet->setCellValue($str3.$en_stapos1, $spv['en_description']);        }        //中文        $objActSheet->setCellValue('E'.$stapos1, $scv['category']);        //英文        $objActSheet->setCellValue('E'.$en_stapos1, $scv['en_category']);    }    //中文    $objActSheet->setCellValue('D'.$stapos, $fv['category']);    $stopos = $stapos + $fv['second_count'] - 1;    $mergecellstr = 'D'.$stapos.':D'.$stopos;    $objActSheet->mergeCells($mergecellstr);    //英文    $objActSheet->setCellValue('D'.$en_stapos, $fv['en_category']);    $en_stopos = $en_stapos + $fv['second_count'] - 1;    $en_mergecellstr = 'D'.$en_stapos.':D'.$en_stopos;    $objActSheet->mergeCells($en_mergecellstr);}</code>

修改以后的片段:

<code>$second_count = 0;//归总每个一级分类下的二级分类foreach($first_cate_array as $fkey => $fvalue){    //一级目录起始行数    $stapos = $num+$second_count;    $en_stapos = $stapos+$cate_count;    $second_stapos = 0;    foreach($cate as $ck=>$cv){        if($cv['parentid'] == $fvalue['id']){            //二级目录起始行数            $stapos1 = $stapos+$second_stapos;            $en_stapos1 = $en_stapos+$second_stapos;                                                foreach($cv['pro<p>+本文来源gao!%daima.com搞$代*!码9网(</p><strong>搞gaodaima代码</strong>'] as $spk => $spv){                $str1 = 70+$spk*3;                $str1 = chr($str1);                $str2 = 71+$spk*3;                $str2 = chr($str2);                $str3 = 72+$spk*3;                $str3 = chr($str3);                //中文                $collect = $spv['name'].'('.$spv['description'].')';                $objActSheet->setCellValue($str1.$stapos1, $collect);                $objActSheet->setCellValue($str2.$stapos1, $spv['name']);                $objActSheet->setCellValue($str3.$stapos1, $spv['description']);                //英文                $en_collect = $spv['en_name'].'('.$spv['en_description'].')';                $objActSheet->setCellValue($str1.$en_stapos1, $en_collect);                $objActSheet->setCellValue($str2.$en_stapos1, $spv['en_name']);                $objActSheet->setCellValue($str3.$en_stapos1, $spv['en_description']);            }            //中文            $objActSheet->setCellValue('E'.$stapos1, $cv['category']);            //英文            $objActSheet->setCellValue('E'.$en_stapos1, $cv['en_category']);            $second_stapos ++ ;            $second_count ++ ;        }    }                               //中文    $objActSheet->setCellValue('D'.$stapos, $fvalue['category']);    $stopos = $num + $second_count - 1;    $mergecellstr = 'D'.$stapos.':D'.$stopos;    $objActSheet->mergeCells($mergecellstr);    //英文    $objActSheet->setCellValue('D'.$en_stapos, $fvalue['en_category']);    $en_stopos = $num + $cate_count + $second_count - 1;    $en_mergecellstr = 'D'.$en_stapos.':D'.$en_stopos;    $objActSheet->mergeCells($en_mergecellstr);}</code>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:phpexecl导出 循环时间问题
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址