Onethink excel导入例子

浏览:2041 发布日期:2016/07/14 分类:用法示例 关键字: excel,导入,onethink,xls,xlsx,3.2
使用onethink 后台插件实现excel导入数据
最近开发一个项目需要用到excel导入,自己改了一个thinkphp 3.2(onethink)适用的,分享下
1.phpexcel路径

/ThinkPHP/Library/Vendor/PHPExcel
2.控制器ExcelController.class.php<?php


namespace Admin\Controller;

/**
 * Excel导入控制器
 * @author crx349 
 */
class ExcelController extends AdminController {

    /**
     * 默认显示
     * @author crx349 
     */
    function  index(){
        //$this->display();
        echo "ok";
    }
    /**
     * Excel导入函数
     * @author crx349 
     */
    function excelto(){
        if (!empty($_FILES)) {
            
            $config = array(
                'maxSize'    =>    3145728,
                'rootPath'   =>    './Uploads/',
                'savePath'   =>    '/Excel/',
                'saveName'   =>    array('uniqid',''),
                'exts'       =>    array('xlsx','xls'),
                'autoSub'    =>    true,
                'subName'    =>    array('date','Ymd'),
            );
            $upload = new \Think\Upload($config);
            $info = $upload->upload();
            if(!$info) {
                $this->error($upload->getError());
            }else{
                foreach($info as $file) {
                    $file_name = $config['rootPath'].$file['savepath'].$file['savename'];
                }

            }

            vendor("PHPExcel.PHPExcel");
            $objReader = \PHPExcel_IOFactory::createReader('Excel5');
            $objPHPExcel = $objReader->load($file_name,$encode='utf-8');
            $sheet = $objPHPExcel->getSheet(0);
            $highestRow = $sheet->getHighestRow(); // 取得总行数
            $highestColumn = $sheet->getHighestColumn(); // 取得总列数
            //第三行B列起

            for($i=3;$i<=$highestRow;$i++)
            {
               
                $data['username']=  $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();//姓名
                $data['idcard']=  $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();//身份证
                $data['testdate']=  strtotime($objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue());//日期
                $data['course_id']=  $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue();//科目
                $data['number']= '0';//默认号数
                M('personnel')->add($data);
               
            }
            $this->success('导入成功!');
        }else
        {
            $this->error("请选择上传的文件");
        }

    }

}
3.插件视图视图widget.html<div class="span{$addons_config.width}">
    <div class="columns-mod">
        <div class="hd cf">
            <h5>人员Excel导入</h5>
            <div class="title-opt">
            </div>
        </div>
        <div class="bd">
            <div class="sys-info">
                <table>
                    <tr>
                        <th>导入</th>
                        <td><form action="/admin.php?s=/excel/excelto" method="post" enctype="multipart/form-data">
            <input type="file" name="import"/>
            <input type="hidden" name="table" value="tablename"/>
            <input type="submit" value="导入"/>
        </form></td>
                    </tr>
                    <tr>
                        <th>格式</th>
                        <td><a href="/Uploads/ys.xls">演示xls格式</a> </td>
                    </tr>
                </table>
            </div>
        </div>
    </div>
</div>
评论( 相关
后面还有条评论,点击查看>>