phpexcel(二)导入excel文件

简介: 有导出。自然就有导入。功能多样化嘛。我这里使用的是laravel5.8框架(框架老点,但是这玩意完全就是一个自定义方法,跟框架版本什么的没有关系)

有导出。自然就有导入。功能多样化嘛。

我这里使用的是laravel5.8框架(框架老点,但是这玩意完全就是一个自定义方法,跟框架版本什么的没有关系)

php

复制代码

  
/**
     * @name: 导入excel
     * @author: camellia
     * @date: 2022-04-12
     * @param:  $filename string  文件路径
     */
    public function importExcels($filename = '/usr/share/nginx/html/xxxx/xxxx/xxxx/xxxx/xxxx/批量解锁虚拟实验模板.xlsx')
    {
        ini_set("memory_limit", "10000M");
        //自动获取文件的类型
        $fileType = \PHPExcel_IOFactory::identify($filename);
        //获取文件读取操作对象
        $reader = \PHPExcel_IOFactory::createReader($fileType);
        // 只读去数据,忽略里面各种格式等(对于Excel读去,有很大优化)  
        // $reader->setReadDataOnly(true);  
        /*// 获取文件后缀名
        $ext = substr($filename, strrpos($filename, '.'));
        // 这个一定要判断,不然会报错。
        if ($ext == '.xls') 
        {
            //如果excel文件后缀名为.xls,导入这个类
            $reader = \PHPExcel_IOFactory::createReader('Excel5');
        } 
        else 
        {
            //如果excel文件后缀名为.xlsx,导入这个类
            $reader = \PHPExcel_IOFactory::createReader('Excel2007'); 
        }//*/
        $PHPExcel = $reader->load($filename); // 载入excel文件 
        // 循环sheet 有几个sheet  就是有几个工作表
        $data = [];
        $sheetName = [];
        foreach($PHPExcel->getSheetNames() as $key => $item)
        {//循环获取到的工作表名称
            $sheet = $PHPExcel->getSheet($key); // 读取第一個工作表 
            $highestRow = $sheet->getHighestRow(); // 取得总行数 
            $highestColumm = $sheet->getHighestColumn(); // 取得总列数 
            $array = [];
            // 循环读取每个单元格的数据
            for ($row = 2; $row <= $highestRow; $row++)
            {//行数是以第1行开始 
                $dataset = [];
                for ($column = 'A'; $column <= $highestColumm; $column++) 
                {//列数是以A列开始 
                    $dataset[] = $sheet->getCell($column.$row)->getValue();
                }             
                $array[] = $dataset;
            } 
            $data[] = $array;
            $sheetName[] = $item;
        } 
        $result['data'] = $data;
        $result['sheetName'] = $sheetName;
        return $result;        
    }

写到这里,就可以把你的excel文件中的数据读取成为一个二维数组了。

之后就是将将二维数组中的数据插入数据库。

这个就不做演示了。

如果你的excel表格中有标题。按上边的代码将excel中的数据读取出之后,你会发现,二维数组中的第一个数组是标题,这个再执行写入数据库的时候要注意。

其他的,就没有什么了。

目前我一般都不会使用直接后端导入的方法,数据安全性始终是一个比较大的问题,目前一般都是使用vue框架,使用前端xlsx组件,使用前端代码将excel文件中的数据读取出来,显示到前端,确认数据没有问题之后,再将数据写入数据库,但是,这个也会有问题,xlsx插件的体积较大,在网络不好的时候,会造成前端页面加载缓慢。

但是,这也是一种解决方式吧,至于到底使用那种方法,看各位同学自己的喜好,这东西见仁见智。

前端导出excel的方法后期也会分享

有好的建议,请在下方输入你的评论。

欢迎访问个人博客 guanchao.site

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”

目录
相关文章
|
1天前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
10天前
R Excel 文件
Excel 格式的文件主要是 xls 或 xlsx,这两种文件可以在 R 语言中导入 xlsx 库来实现直接的读取。
46 23
5-22|pywintypes.com_error: (-2147352567, '发生意外。', (0, 'Microsoft Office Excel', 'Excel 无法打开文件“
5-22|pywintypes.com_error: (-2147352567, '发生意外。', (0, 'Microsoft Office Excel', 'Excel 无法打开文件“
|
10天前
|
存储 数据挖掘 测试技术
Python接口自动化中操作Excel文件的技术方法
通过上述方法和库,Python接口自动化中的Excel操作变得既简单又高效,有助于提升自动化测试的整体质量和效率。
18 0
|
1月前
|
SQL JSON 关系型数据库
n种方式教你用python读写excel等数据文件
n种方式教你用python读写excel等数据文件
|
1月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何直接导出excel文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1月前
|
关系型数据库 MySQL Windows
MySQL数据导入:MySQL 导入 Excel 文件.md
MySQL数据导入:MySQL 导入 Excel 文件.md
|
1月前
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
31 0
|
19天前
|
数据采集 存储 数据挖掘
使用Python读取Excel数据
本文介绍了如何使用Python的`pandas`库读取和操作Excel文件。首先,需要安装`pandas`和`openpyxl`库。接着,通过`read_excel`函数读取Excel数据,并展示了读取特定工作表、查看数据以及计算平均值等操作。此外,还介绍了选择特定列、筛选数据和数据清洗等常用操作。`pandas`是一个强大且易用的工具,适用于日常数据处理工作。
|
1月前
|
存储 Java Apache