Fastadmin上传EXCEL

简介: Fastadmin上传EXCEL

上传 EXCEL

1. 引入excel类:use PhpOffice\PhpSpreadsheet\IOFactory;
2. 定义方法:
public function uploadExcel()
    {
        $this->request->filter(['trim', 'strip_tags']);
        //  !非POST请求
        if (!$this->request->isPost()) return  $this->error('请求方式不正确');
        // 获取上传的文件
        $file = request()->file('file');
        // 判断文件是否上传成功
        if ($file) {
            // 上传文件并保存到指定目录
            $info = $file->validate(['ext' => 'xlsx,xls'])->move(ROOT_PATH . 'public' . DS . 'uploads');
            if ($info) {
                // 获取上传文件的路径
                $filePath = $info->getSaveName();
                // 使用PhpSpreadsheet库的IOFactory类来创建一个Xlsx格式的读取器,然后使用该读取器加载Excel文件并读取文件内容
                // 读取Excel文件内容
                $reader = IOFactory::createReader('Xlsx');
                $spreadsheet = $reader->load(ROOT_PATH . 'public' . DS . 'uploads' . DS . $filePath);
                $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
                // 处理Excel文件内容并保存到数据库中
                foreach ($sheetData as $key => $value) {
                    // 跳过表头
                    if ($key == 1) continue;
                    // 跳过空行
                    if (empty($value['A'])) continue;
                    // 获取题目、选项和答案
                    $title = $value['A'];
                    $optionA = $value['B'];
                    $optionB = $value['C'];
                    $result = $value['F'];
                    // 将数据保存到数据库中
                    db('question_bank')->insert([
                        'title' => $title,
                        'option_A' => $optionA,
                        'option_B' => $optionB,
                        'result' => $result,
                    ]);
                }
                return $this->success('文件上传成功');
            } else {
                return $this->error('参数不能为空');
            }
        } else {
            $this->error();
        }
    }
相关文章
|
9月前
fastadmin实现导出Excel和导入Excel数据
fastadmin实现导出Excel和导入Excel数据
228 0
|
10月前
|
安全 前端开发
fastadmin自定义excel文件导入,实现文件上传功能 --已实现
fastadmin自定义excel文件导入,实现文件上传功能 --已实现
599 0
|
4天前
|
easyexcel
【EasyExcel】第二篇:导出excel文件,导出多个sheet工作空间
【EasyExcel】第二篇:导出excel文件,导出多个sheet工作空间
|
4天前
|
SQL 数据库连接 数据库
【SQL Server】2. 将数据导入导出到Excel表格当中
【SQL Server】2. 将数据导入导出到Excel表格当中
50 0
|
4天前
|
NoSQL 关系型数据库 MySQL
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;结合以上原因,对导出操作进行排队; 刚开始拿到这个需求,第一时间想到就是需要维护一个FIFO先进先出的队列,给定队列一个固定size,在队列里面的人进行排队进行数据导出,导出完成后立马出队列,下一个排队的人进行操作;还考虑到异步,可能还需要建个文件导出表,主要记录文件的导出情况,文件的存放地址,用户根据文件列表情况下载导出文件。
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
|
4天前
|
JavaScript 前端开发
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
|
4天前
|
Java
java导出复杂excel
java导出复杂excel
|
2天前
|
开发框架 资源调度 JavaScript
uniapp本地导出表格excel
uniapp本地导出表格excel
|
3天前
|
前端开发 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
24 0
|
4天前
|
JavaScript
vue导出excel无法打开问题
vue导出excel无法打开问题