首页 > php教程 > php手册 > 正文

PHPExcel 导入导出

WBOY
发布: 2016-06-07 11:36:06
原创
1114 人浏览过

大家帮忙优化下吧

getletter方法是把数组的索引转成excel的表头
// 数字转字母<br>     函数 getLetter($num) {<br>         $str = “$num”;<br>         $num = intval($num);<br>         if ($num             $ret = chr(ord('A') intval($str) - 1);<br>         } 其他 {<br>             $first_str = chr(ord('A') intval(floor($num / 26)) - 1);<br>             $second_str = chr(ord('A')   intval($num % 26) - 1);<br>             if ($num% 26==0){<br>                 $first_str = chr(ord('A') intval(floor($num / 26)) - 2);<br>                 $second_str = chr(ord('A')   intval($num % 26)   25);<br>             }<br>             $ret = $first_str.$second_str;<br>         }<br>         返回 $ret;<br>     }<br>     <br>     // excel 导入<br>     /**<br>      * 导入excel到数据库<br>      * @param string $db 数据库表名<br>      * @param path string 文件名(路径)<br>      * @return boolean<br>      */<br>     函数 excelImport($db, $file) {<br>         import("Org.Util.PHPExcel");<br>         $PHPExcel = new PHPExcel();<br>         <br>         $PHPReader = new PHPExcel_Reader_Excel2007();<br>         if (!$PHPReader->canRead($file)) {<br>             $PHPReader = new PHPExcel_Reader_Excel5();<br>             if (!$PHPReader->canRead($file)){<br>                 返回 false;<br>             }<br>         }<br>         <br>         $E = $PHPReader->load($file);<br>         $cur = $E->getSheet(0);  // 读取第一个表<br>         $end = $cur->getHighestColumn(); // 获得最大的列数<br>         $line = $cur->getHighestRow(); // 获得最大总行数<br>         // 获取数据仓库<br>         $信息=数组();        <br>         for ($row = 1; $row             for ($column = 'A'; $column                 $val = $cur->getCellByColumnAndRow(ord($column) - 65, $row)->getValue();<br>                $info[$row][] = $val;<br>             }<br>         }<br>         <br>         $DB = M($db);<br>         $data = array();<br>         for ($i = 2; $i             for ($j = 0; $j                 for ($k = 0; $k                     $data[$i][$info[1][$k]] = $info[$i][$k];<br>                 }<br>             }<br>         }<br>         $datalist = array_values($data);<br>         $结果 = $DB->addAll($datalist);<br>         // echo $DB->getLastSql();exit;<br>         如果($结果){<br>             返回 true;<br>         }<br>         返回 false;<br>     }<br>     <br>     // 导出excel<br>     /**<br>      * 导出excel方法<br>      * @param array $data 需要导出的数据<br>      * @param array $title excel表头<br>      * @param string $name 导出后的文件名<br>      */<br>     函数 excelExport ($data, $title=null, $name=null) {<br>         import("Org.Util.PHPExcel");<br>         $PHPExcel = new PHPExcel();<br>         <br>         if(!is_null($title)){<br>             array_unshift($data, $title);<br>         }<br>         <br>         if(is_null($name)){<br>             $名称 = 时间();<br>         }<br>             <br>         foreach($data as $k => $v){<br>             for ($i = 1; $i                 $tr = getLetter($i).($k 1);<br>                 如果($值== null){<br>                     $值 = '';<br>                 }<br>                 $buffer[$tr]=array_values($v)[$i-1];<br>                 $PHPExcel->getActiveSheet()->setCellValue($tr, array_values($v)[$i-1]);<br>             }        <br>         }<br>         <br>        $PHPExcel->setActiveSheetIndex(0);<br>         header('Content-Type: application/vnd.ms-excel'); <br>         header('Content-Disposition: attachment;filename="' . $name . '.xls"'); //文件名称 <br>         header('Cache-Control: max-age=0');<br>         $result = PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007');<br>         $result->save('php://output');        <br>     }

AD:真正免费,域名 虚机 企业邮箱=0元

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板