php excel的导入和导出~~~

来源:互联网 发布:剑侠情缘捏脸数据 编辑:程序博客网 时间:2024/06/02 06:31

前言:要做这个excel导出和导入的,首先需要一个第三方库,导入到你的项目中来,才能实现,哪个第三方库呢,百度搜一下PHPEXCEL。我是用的thinkphp3.2写的。

开始正题:先做导入(因为导入相对来说比较复杂,后面都会有代码,并且代码都有详细的注释)。

导入:

下载好phpexcel然后解压,然后将PHPExcel文件夹和PHPExcel.php放到vender目录(tp的第三方库存放的地方),然后就是显示页面,我的目的是做功能,所以页面就无所谓了,这里是页面的代码:

<html>
<head></head>
<body>
<form name="aa" enctype="multipart/form-data" action="{:U('Home/Index/upload')}" method="post">
<input type="file" name="file">
<input type='submit'>
</form>
</body>
</html>


控制器代码:

//学习phpexcel


//页面显示
public function excelIn(){
$this->display();
}

//上传
public function upload(){
//dump($_FILES);
$tmp_file = $_FILES['file']['tmp_name'];//临时目录

//判断错误啊,判断格式我就不在这里写这么详细了,其实还是要处理一下的,

//获取拓展名.xls
$file_extend = explode ( ".", $_FILES ['file'] ['name'] );  
$file_extend = $file_extend[1];//获取拓展名.xls

//设置上传路径将文件传至指定的地方,文件名用时间戳代替
$savePath = './public/upload/'.time().".".$file_extend;

$ok = move_uploaded_file($tmp_file,$savePath); //将文件从临时目录移动到指定的目录
if($ok){
//成功上传并移入,就开始处理excel文件,将excel变成一个数组
$result = dealExcelInDb($savePath,'utf-8');
dump($result);exit;
}else{
//上传失败,你们该怎么处理怎么处理,我不管。。。。。。
echo   22222;
}


}


公共方法function里面的代码:

//处理excel进入数据库的方法
function dealExcelInDb($filename,$encode='utf-8'){
    require dirname(__FILE__).'/../../../'.'/ThinkPHP/Library/Vendor/PHPExcel/PHPExcel/IOFactory.php';
    $reader = \PHPExcel_IOFactory::createReader('Excel2007'); // 读取 excel 文档
    $PHPExcel = $reader->load($filename); // 文档名称
    $objWorksheet = $PHPExcel->getActiveSheet();
    $highestRow = $objWorksheet->getHighestRow(); // 取得总行数
    $highestColumn = $objWorksheet->getHighestColumn(); // 取得总列数

    $arr = array(1 => 'A', 2 => 'B', 3 => 'C', 4 => 'D', 5 => 'E', 6 => 'F', 7 => 'G', 8 => 'H', 9 => 'I', 10 => 'J', 11 => 'K', 12 => 'L', 13 => 'M', 14 => 'N', 15 => 'O', 16 => 'P', 17 => 'Q', 18 => 'R', 19 => 'S', 20 => 'T', 21 => 'U', 22 => 'V', 23 => 'W', 24 => 'X', 25 => 'Y', 26 => 'Z');
    //echo $highestRow.$highestColumn;
    // 一次读取一列
    $res = array();
    for ($row = 1; $row <= $highestRow; $row++) {
        for ($column = 0; $arr[$column] != 'T'; $column++) {
            $val = $objWorksheet->getCellByColumnAndRow($column, $row)->getValue();
            $res[$row-1][$column] = $val;
        }
    }
    return $res;
}

代码已经写好了,现在开始讲思路,然后各位看官对照代码看一下,

第一步:首先你得写一个页面能够上传excel文件对吧,然后打印一下这个excel文件,看下$_FILES是个啥?,这是第一步你需要完成的,比较简单。

第二步:这个时候就需要引入PHPExcel然后用PHPExcel里面的东西来处理一下这个上传的excel文件(文件变成数组的过程)。

第三步:读取ecxel文件里面的内容,然后将其写入数据库,这个时候就算是大功告成了。

 结果截图:


导出excel就很简单了,后面有时间再来补充吧,今天就先到这里吧。



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 护林日常:开局拯救大熊猫 穿越兽世:种田驭夫乐悠悠 不灭战神 我在宝可梦世界开餐厅 爸爸,我是来当你同学的 这个主角明明很强却异常谨慎 四合院:我的穿越为啥这么陋 甩了线上男友后我被亲哭了 人在南天坐看万古 为了成为英灵我只好在历史里搞事 我成了游戏里的反派之王 离婚后,前夫每天都想上位 霍格沃茨的风与鹰翼 攻略暴君后,我抱错大腿了 我的精灵模拟器 金鸾喜嫁 人在美漫,开局枪斗术 大国科技从手机开始 人住超神,渣在诸天 斗罗之王者吕布降临 从白蛇开始诸天改命 诸天之天外降临者 屠龙之前就读过龙族的路明非 足球盛宴,从收购欧洲俱乐部开始 在漫威驱魔的魔鬼神父 柯南之我的老姐毛利兰 重生在电影的世界 美漫第一仙 签到从遮天开始 风云饲养师 穿越异世:开局拥有空间神器 吞噬星空之超脱之路 穿梭两界:我携带的物品能变强 从开端开始的超凡之旅 相亲后,靳先生突然黏上我 港综世界的炼金术师 惊!帝君娇宠的小废柴竟然有空间 海上升明帝 开局十连抽,超跑豪宅拿来吧你! 柯学世界的普通警察 柯学世界里的柯研人