基于TP5框架的excel导入功能

简介: 准备工作:首先需要下载PHPExcel文件放入vendor目录下。

准备工作:首先需要下载PHPExcel文件放入vendor目录下。


导入功能控制器类对应的方法的书写如下所示:

public function submitData()
    {
        if (request()->isPost()) {
            require "../vendor/PHPExcel/Classes/PHPExcel.php"; //引入PHPExcel文件路径并运行文件,当文件报错时会产生一个致命错误并且终止执行,
            // vendor("PHPExcel.PHPExcel"); //处理Excel文件请求
            $file = request()->file('file');  //加载excel文件
            if (is_null($file)) {
                return $this->success("上传文件不能为空");  
            }
            $info = $file->validate(['size' => 1567800, 'ext' => 'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'uploads' . DS . 'excel');   //validate()用于表单验证,这里验证文件后缀名称,尺寸大小
            if ($info) {
                $exclePath = $info->getSaveName(); //获取文件名
                $file_name = ROOT_PATH . 'public' . DS . 'uploads' . DS . 'excel' . DS . $exclePath; //上传文件的地址
                // $objReader = \PHPExcel_IOFactory::createReader('Excel2007');
                // $obj_PHPExcel = $objReader->load($file_name,);//加载文件内容,编码utf-8
                $obj_PHPExcel = \PHPExcel_IOFactory::load($file_name);//$encode='utf-8' //加载文件内容,编码utf-8  
                echo "<pre>";
                $excel_array = $obj_PHPExcel->getsheet(0)->toArray(); //转换为数组格式
                array_shift($excel_array); //删除第一个数组(标题);
                //逻辑代码
                $data = [];
                $i = 0;
                foreach ($excel_array as $k => $v) {    //遍历循环excel对应的数据的数组每一列的内容
                    $data[$k]['name'] = $v[1];
                    $data[$k]['gender']=$v[2];
                    if($v[3]=='一班'){
                        $classId=1;
                    }else if($v[3]=='二班'){
                        $classId=2;
                    }else if($v[3]=='三班'){
                        $classId=3;
                    }else{
                        $classId=Null;
                    }
                    $data[$k]['class_id']=$classId;
                    // if($request->ext($v[4])=='jpg'){
                    //     echo 'ext: ' . $request->ext($v[4]);
                    // }
                    $data[$k]['photo']=$v[4];
                    $i++;
                }
                // exit;
                var_dump($data);
                $success=0;
                for($j=0;$j<$i;$j++){
                    $sql = db('student')->insert($data[$j]); //批量插入数据
                    var_dump($sql);
                    if($sql){
                       $success++;
                    }
                }
                // $success = db('student')->insertAll($data); //批量插入所有数据
                $error = $i - $success;
                echo "总{$i}条,成功{$success}条,失败{$error}条。";
            }else{
                // 上传失败获取错误信息
                echo $file->getError();
            }
        }
    }


里面一些信息需要进行一下修改。

目录
相关文章
|
11天前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
1月前
|
数据可视化 数据处理 Python
使用Pandas实现Excel中的数据透视表功能
本文介绍了如何使用Python的Pandas库实现Excel中的数据透视表功能,包括环境准备、创建模拟销售数据、代码实现及输出等步骤。通过具体示例展示了按地区和销售员汇总销售额的不同方法,如求和、平均值、最大值等,帮助读者掌握Pandas在数据处理上的强大能力。
62 12
|
2月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
128 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
2月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
37 1
|
2月前
|
前端开发 Java easyexcel
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
145 8
|
4月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
4月前
|
前端开发 Java easyexcel
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
64 6
|
5月前
|
关系型数据库 MySQL Windows
MySQL数据导入:MySQL 导入 Excel 文件.md
MySQL数据导入:MySQL 导入 Excel 文件.md
|
5月前
|
前端开发 easyexcel
SpringBoot+Vue3实现Excel导入
SpringBoot+Vue3实现Excel导入
152 0
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
112 10