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

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

目录
相关文章
|
5天前
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
|
22小时前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
13 4
|
21天前
|
easyexcel Java UED
SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载
在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。
|
25天前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
48 2
|
26天前
|
IDE 开发工具 数据安全/隐私保护
Python编程--实现用户注册信息写入excel文件
Python编程--实现用户注册信息写入excel文件
16 1
|
14天前
|
前端开发 JavaScript API
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
77 0
|
27天前
|
iOS开发 MacOS Python
Python编程-macOS系统数学符号快捷键录入并生成csv文件转换为excel文件
Python编程-macOS系统数学符号快捷键录入并生成csv文件转换为excel文件
25 0
|
21天前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
|
3月前
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
39 0
|
18天前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
37 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档