TP5.0 excel 导入导出

TP5.0 excel 导入导出

引第三方的phpexcel类库放到 ThinkPHP\Library\Vendor\demo下,自己建的文件夹demo

再将Excel.class放到ThinkPHP\Library\Org\class下,自己建的文件夹class

控制器:

<?php
namespace Admin\Controller;
use Think\Controller;
class ExcelController extends Controller {
    public function excelList(){
        $this->display();
    }
//    导入
    public function import(){
        if(!empty($_FILES['file_stu']['name'])){
            $tmp_file = $_FILES['file_stu']['tmp_name'];    //临时文件名
            $file_types = explode('.',$_FILES['file_stu']['name']); //  拆分文件名
            $file_type = $file_types [count ( $file_types ) - 1];   //  文件类型
            /*判断是否为excel文件*/
            if($file_type == 'xls' || $file_type == 'xlsx'|| $file_type == 'csv'){    //  符合类型
                /*上传业务*/
                $upload = new \Think\Upload();
                $upload->maxSize   =     3145728 ;
                $upload->exts      =     array('xls', 'csv', 'xlsx');
                $upload->rootPath  =      './Public';
                $upload->savePath  =      '/Excel/';
                $upload->saveName  =      date('YmdHis');
                $info   =   $upload->upload();
                if(!$info) {    // 上传错误提示错误信息
                    $this->error($upload->getError());
                }else{  // 上传成功

                    //  读取文件
                    $filename='./Public'.$info['file_stu']['savepath'].$info['file_stu']['savename'];
                    import("Org.Yufan.ExcelReader");
                    vendor('PHPExcel.PHPExcel');
                    $reader = \PHPExcel_IOFactory::createReader('Excel2007'); //设置以Excel5格式(Excel97-2003工作簿)
                    $PHPExcel = $reader->load($filename); // 载入excel文件
                    $sheet = $PHPExcel->getSheet(0); // 读取第一個工作表
                    $highestRow = $sheet->getHighestRow(); // 取得总行数
                    var_dump($highestRow);
                    $highestColumm = $sheet->getHighestColumn(); // 取得总列数

                    /** 循环读取每个单元格的数据 */
                    $data = array();
                    for ($row = 2; $row <= $highestRow; $row++){
   //行数是以第1行开始

                        if($column = 'A'){
                            $data['name'] = $sheet->getCell($column.$row)->getValue();
                        }
                        if($column = 'B'){
                            $data['account'] = $sheet->getCell($column.$row)->getValue();
                        }
                        if($column = 'C'){
                            $data['password'] = $sheet->getCell($column.$row)->getValue();
                        }
                        M('data')->add($data);
                    }
                        $this->success('导入数据库成功',U('Excel/show'));
                }
            } else{ //  不符合类型业务
                $this->error('不是excel文件,请重新上传...');
            }
        }else{
            $this->error('(⊙o⊙)~没传数据就导入');
        }
    }
    //导出
    public function export(){
        import("ORG.Yufan.Excel");
        $list = M('data')->select();
        if($list == null){
            $this->error('数据库信息为空...',__APP__.'/Admin/Excel/show');
        }else{
            $row=array();
            $row[0]=array('平台名称','帐号','密码');
            $i=1;
            foreach($list as $v){
                $row[$i]['name'] = $v['name'];
                $row[$i]['account'] = $v['account'];
                $row[$i]['password'] = $v['password'];
                $i++;
            }
            $xls = new \Excel_XML('UTF-8', false, 'datalist');
            $xls->addArray($row);
            $xls->generateXML(date('YmdHis'));
        }
    }
    public function show(){
        $m = M('data');
        $data = $m->select();
        $this->assign('data',$data);
        $this->display();
    }
}

视图

excelList.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Excel导入导出</title>
</head>
<body>

<div class="page-header">
    <h1>TP DEMO
        <small>Excel导入导出练习</small>
    </h1>
</div>

<form method="post" action="{:U('Excel/import')}" class="form-signin" enctype="multipart/form-data" >
    <input name="file_stu" type="file" class="form-control">
    <button class="btn btn-lg btn-primary btn-block">导入</button>
</form>
</body>
</html>

视图

show.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表格展示</title>
</head>
<body>
<div class="page-header">
    <h1>TP DEMO
        <small>Excel导入导出练习</small>
    </h1>
</div>

<table class="table">
    <tr>
        <td><h4><b>平台名称</b></h4></td>
        <td><h4><b>帐号</b></h4></td>
        <td><h4><b>密码</b></h4></td>
    </tr>
    <foreach name="data" item="vo">
        <tr>
            <td>{
   $vo.name}</td>
            <td>{
   $vo.account}</td>
            <td>{
   $vo.password}</td>
        </tr>
    </foreach>
</table>



<form action="{:U('Excel/export')}" class="form-signin">
    <button class="btn btn-lg btn-primary btn-block">导出数据库数据</button>
</form>

</body>
</html>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113684.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java开发常用四大框架_Java 后台开发框架[通俗易懂]

    java开发常用四大框架_Java 后台开发框架[通俗易懂]UWeb框架中集成了权限管理、模块管理,数据库管理、富文本编辑器(已集成ueditor,kindeditor),后台支持多主题切换、布局管理、广告管理、配置管理、字典管理、切图管理、CMS内容管理等常用功能模块,以方便开发者快速构建自己的应用。框架专注于为中小企业提供最佳的行业基础后台框架解决方案,执行效率、扩展性、稳定性值得信赖,操作体验流畅,使用非常优化,欢迎大家使用及进行二次开发。项目介绍1…

    2022年7月9日
    18
  • 信用标准评分卡模型开发及实现方案_信用评分卡模型的建立

    信用标准评分卡模型开发及实现方案_信用评分卡模型的建立一、信用风险评级模型的类型信用风险计量体系包括主体评级模型和债项评级两部分。主体评级和债项评级均有一系列评级模型组成,其中主体评级模型可用“四张卡”来表示,分别是A卡、B卡、C卡和F卡;债项评级模型通常按照主体的融资用途,分为企业融资模型、现金流融资模型和项目融资模型等。A卡,又称为申请者评级模型,主要应用于相关融资类业务中新用户的主体评级,适用于个人和机构融资主体。B卡,又称为行为评级模型

    2025年8月21日
    3
  • vuethink 在本地没问题,在服务器报错 , php5.6与php5.5之间的大坑

    vuethink 在本地没问题,在服务器报错 , php5.6与php5.5之间的大坑

    2021年10月13日
    50
  • Colbie Caillat – Try Lyrics

    Colbie Caillat – Try Lyrics

    2021年8月30日
    66
  • VMware虚拟机开启导致宿主机蓝屏

    VMware虚拟机开启导致宿主机蓝屏开启虚拟机的虚拟化后,运行VMware中虚拟机导致win10蓝屏备注;win10家庭中文版20H2+VMware16.0由于需要开启虚拟化功能,运行VMware中的eve虚拟机。且eve虚拟机也要开启虚拟化才能运行qemu镜像。1.但是开启eve的虚拟化后,虚拟机无法打开,解决方案:1.cmd管理员身份打开,输入Msinfo32,查看是否关闭基于虚拟化的安全性。如果未关闭输入bcdeditset/hypervisorlaunchtypeoff,然后重启。下面在控制面板取消勾选

    2022年8月21日
    17
  • C#中遍历ArrayList的三种方法(转)

    C#中遍历ArrayList的三种方法(转)usingSystem;usingSystem.Collections;usingSystem.Linq;usingSystem.Text;namespaceArrayListDemo{classProgram{staticvoidMain(string[]args){…

    2022年7月22日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号