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

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

目录
相关文章
|
7天前
|
文字识别 BI
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
49 8
|
2月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
234 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
2月前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
2月前
|
Python
批量将不同的工作簿合并到同一个Excel文件
本文介绍如何使用Python的`pandas`库批量合并不同工作簿至同一Excel文件。通过模拟生成三个班级的成绩数据,分别保存为Excel文件,再将这些文件合并成一个包含所有班级成绩的总成绩单。步骤包括安装必要库、生成数据、保存与合并工作簿。
71 6
|
2月前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分为多个工作表。本文通过一个具体示例,展示了如何根据学生班级将成绩数据拆分到不同的工作表中,并生成一个包含总成绩表和各班级成绩表的Excel文件。代码简洁明了,适合初学者学习和应用。
64 6
|
2月前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分到不同的工作表中。本文通过一个示例代码展示了如何生成一个包含总成绩表和三个班级表的Excel文件。代码首先创建了一个包含学生姓名、班级和各科成绩的数据框,然后按班级分组,将每个班级的数据分别写入不同的工作表。最后,生成的Excel文件将包含四个工作表,分别为总成绩表和三个班级的成绩表。
52 6
按条件将Excel文件拆分到不同的工作表
|
3月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
50 1
|
2月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
305 10
|
4月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
268 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
4月前
|
easyexcel Java UED
SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载
在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。

热门文章

最新文章