php excel的导入和导出~~~

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29787335/article/details/73089998

前言:要做这个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就很简单了,后面有时间再来补充吧,今天就先到这里吧。



猜你喜欢

转载自blog.csdn.net/qq_29787335/article/details/73089998