zoukankan      html  css  js  c++  java
  • thinkphp实现excel数据的导入导出

    下载地址:phpexcel.rar

    实现步骤:
    一:在http://phpexcel.codeplex.com/下载最新PHPExcel放到Vendor下,注意位置:ThinkPHPExtendVendorPHPExcelPHPExcel.php。
    二:导出excel代码实现

    /*导出Excel*/ 
       
        function expUser()
        {
            $xlsName  = "User";
            $xlsCell  = array(
            array('userid','账号序列'),
            array('title','标题'),
            array('city_id','地区'),
            array('sex','性别'),
            array('age','年龄'),
            array('height','身高'),
            array('telephone','电话'),
            array('education_id','学历'),
            array('professional','职业'),
            array('month_salary','月收入'),
            array('weixin','微信号'),
            array('pubtime','提交时间')
            );
            $xlsModel = M('meet');
    
            $xlsData  = $xlsModel->Field('userid,title,city_id,sex,age,height,telephone,education_id,professional,month_salary,weixin,pubtime')->select();
            foreach ($xlsData as $k => $v)
            {
                $xlsData[$k]['sex']=$v['sex']==1?'女':'男';
            }
            $this->exportExcel($xlsName,$xlsCell,$xlsData);
                
        }
    
    
        /*导出方法*/
        public function exportExcel($expTitle,$expCellName,$expTableData)
        {
            $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
            $fileName = $_SESSION['account'].date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
            $cellNum = count($expCellName);
            $dataNum = count($expTableData);
    
            vendor("PHPExcel.PHPExcel");
                
            $objPHPExcel = new PHPExcel();
            $cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');
    
            $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
            // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.'  Export time:'.date('Y-m-d H:i:s'));
            for($i=0;$i<$cellNum;$i++)
            {
                $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
            }
            // Miscellaneous glyphs, UTF-8
            for($i=0;$i<$dataNum;$i++)
            {
                for($j=0;$j<$cellNum;$j++)
                {
                    $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);
                }
            }
    
            header('pragma:public');
            header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
            header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
            $objWriter->save('php://output');
            exit;
        }

    模板:

    <a href="{:U('Admin/Meet/expUser')}" ><input class="btn btn-default" type="button" value="导出数据"  style="margin-right:5px;"></a>
  • 相关阅读:
    41.给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。
    Java反射学习记录
    LeetCode算法笔记-回溯法
    LeetCode算法笔记(二)
    LeetCode算法笔记(一)
    JDBC学习笔记--通用的查询方法
    JDBC学习笔记--ResultSetMetaData
    JDBC学习笔记--PreparedStatement
    Java学习笔记---字符串
    Java学习笔记---通过异常处理错误
  • 原文地址:https://www.cnblogs.com/hnbiao/p/4627049.html
Copyright © 2011-2022 走看看