PHP导入excel数据

简介

excel插件导入实现

存在的问题

mysql load data infile

总结

简介

但我们使用PHP框架进行项目开发的时候,难免会遇到一些数据导入的需求,比如后台导入用户,导入订单数据等等,通常解决方案都是compose引入excel插件,先将文件上传到服务器,将文件中的数据读取到内存中,再插入数据表中。

excel插件导入实现

1、我们以laravel5.5框架为例

a、首先在更目录下安装excel插件:

composer require “maatwebsite/excel:~2.1.0”

b、在config/app.php中注册服务提供者到provides数组:

Maatwebsite\Excel\ExcelServiceProvider::class

c、在config/app.php中注册到aliases数组:

‘Excel’ => Maatwebsite\Excel\Facades\Excel::class,

d、生成Laravel excel的配置文件:

php artisan vendor:publish --provider=“Maatwebsite\Excel\ExcelServiceProvider”

e、控制器代码实现

public function import(Request $req){

try {

//获取上传的excel文件

$filePath = $req->get('report');

Excel::load($filePath, function($reader) {

$data = $reader->all();

//批量存储

//返回导入结果

throw new Exception("成功导入了".$count."条数据");

});

}catch(Exception $e){

return $this->doFailure($e);

}

}

存在的问题

当excel表格的数据量过大时,会很消耗内存,有可能导致内存溢,因而当导入数据量比较大的数据时可用以下方案:

mysql load data infile

a、首先同样要把需要导入的文件上传至服务器,而且文件格式最好是csv,TXT,.sql的格式

b、通过shell脚本发方式执行登录数据库以及导入操作

#!/bin/bash

#!/bin/bash

mysql -uroot -p123456 <

c、这时只需在controller中待文件上传完成通过php的system函数执行以上脚本即可

system("cd /脚本位置 && sh ./import.sh",$result);

d、这时可查看数据是否导入成功

总结

可以说mysql load data infile 是秒级响应,而当你用excel插件去导入的时候,发现会等待一段时间,所以看具体需求,如果需要导入的数据量足够大的话可以考虑使用第二种方式进行,当数据量不大时可以使用excel,要注意的是xlxs的格式需要转化成csv的格式。

php倒入百万行excel数据,PHP导入(百万级)Excel表格数据相关推荐

  1. PHP导入(百万级)Excel表格数据

    PHP导入excel数据 简介 excel插件导入实现 存在的问题 mysql load data infile 总结 简介 但我们使用PHP框架进行项目开发的时候,难免会遇到一些数据导入的需求,比如 ...

  2. 高性能 + 百万级excel数据导入导出

    高性能 + 百万级excel数据导入导出 内容介绍 github地址 使用文档地址 安装注意事项 仅以mac举例 ide中提示相关代码 下载demo 内容介绍 [转载]https://learnku. ...

  3. R—读取数据(导入csv,txt,excel文件)

    R-读取数据(导入csv,txt,excel文件) 转自:http://www.cnblogs.com/zhangduo/p/4440314.html 导入CSV.TXT文件 read.table函数 ...

  4. 百万数据php7取出循环_用php处理百万级以上的数据

    用php处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描, ...

  5. lambda 查询大量数据速度很慢_处理百万级以上的数据提高查询速度的方法

    处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考 ...

  6. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解、使用gtExtras包添加一个图,显示表中某一列中的数字

    R语言使用gt包和gtExtras包优雅地.漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解.使用gtExtras包添加一个图,显示表中某一列中的数字 目录

  7. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解、使用gtExtras包添加一个图,显示表中某一列中的数字、并为类型数据添加图像符号标签

    R语言使用gt包和gtExtras包优雅地.漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解.使用gtExtras包添加一个图,显示表中某一列中的数字.并为类型数据添加图像符号标签 目 ...

  8. lambda 查询大量数据速度很慢_处理百万级以上的数据提高查询速度的方法:

    处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考 ...

  9. python导入excel数据-Python导入数值型Excel数据并生成矩阵操作

    riginal_Data 因为程序是为了实现对纯数值型Excel文档进行导入并生成矩阵,因此有必要对第五列文本值进行删除处理. Import_Data import numpy as np impor ...

  10. 百万excel导入mysql_百万级xlsx表格导入数据库的实现方案

    需求是这样的,供应商给到一份 xlsx 表格(144MB),里面刚好有 100w 行数据(11列).我需要把它们稍作处理后写入到 mysql 数据库 项目基于 Laravel,既然需要稍作处理,那我首 ...

最新文章

  1. 简析平衡树(三)——浅谈Splay
  2. 以演进式的架构来让系统为变化做好准备
  3. BZOJ1449[JSOI2009]球队收益BZOJ2895球队预算——最小费用最大流
  4. 混合云:公共云和私有云之间取得平衡的方式?
  5. TailwindCSS v3.0 正式发布!一大波新特性来袭!
  6. php chr 乱码,php chr() ord()中文截取乱码问题解决方法_PHP教程
  7. Hive 建表语句详解
  8. 重心法选址迭代matlab,配送中心重心法选址的研究
  9. 解决黑苹果睡眠唤醒后立马死机(AppleHDAHDMI_DPDriver)
  10. 互联网大佬生存法则:如何防守周鸿祎?
  11. TCP—为什么是AIMD?
  12. 微信小程序地图实现标记多个位置
  13. Unity用户手册-IL2CPP
  14. springCloud之Netflix完整学习
  15. ArcSDE之SDE命令
  16. 用vue开发一个猫眼电影web app
  17. 服务器pe启动不了系统,云服务器PE启动
  18. linux常见的虚拟化技术
  19. 迁移学习之快速实现【文本分类】
  20. dell g3安装ubuntu18.10后登录进去屏幕卡住只有鼠标可移动

热门文章

  1. Jquery+flash在线图片裁剪
  2. 极限数学计算机在线使用,健身最大重复次数(RM)在线计算器
  3. 音乐播放器app android,mp3音乐播放器
  4. 微信小程序中相机api_微信小程序调用内置照相机实现拍照及图片上传
  5. 大数据与云计算概论简介
  6. PPT封面怎样设计才更赏心悦目
  7. 《赖氏经典英语语法》第二集
  8. Android网络框架情景分析之NetworkManagementService和Netd交互深入分析二
  9. Outlook的服务器设置中POP3协议,在outlook的服务器设置中pop3协议是指什么
  10. Mybatis事务管理SqlSession