laravel 导出插件

转发:https://blog.csdn.net/gu_wen_jie/article/details/79296470

版本:laravel5

          php 5.6

安装步骤:

一、安装插件

①、首先在Laravel项目根目录下使用Composer安装依赖:

composer require "maatwebsite/excel:~2.1.0"

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

Maatwebsite\Excel\ExcelServiceProvider::class,

 

③、在config/app.php中注册门面到aliases数组:

'Excel' => Maatwebsite\Excel\Facades\Excel::class,

④、建议你生成Laravel Excel的配置文件,使用如下命令:

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

 

然后你会发现在config目录下有一个excel.php文件 
你可以打开看一下大概的配置项,主要就是缓存,表单,和导入,导出的一些设置。

 

二、使用

①、创建路由:

//Excel导出 Route::get('/excel/export','Member\MemberController@export')->name('/excel/export');

//Excel导入 Route::get('/excel/import','Member\MemberController@import')->name('/excel/import'); 

1-1、导出的方法:

<?phpnamespace App\Http\Controllers\Member;use App\Http\Controllers\BaseController;
use App\Model\Member\MemberFollow;
use Illuminate\Http\Request;
use Illuminate\Database\QueryException;
use Excel;class MemberController extends BaseController
{/**** Excel导出*/public function export(){ini_set('memory_limit','500M');set_time_limit(0);//设置超时限制为0分钟$cellData = MemberFollow::select('xt_name','sex','face')->limit(5)->get()->toArray();$cellData[0] = array('昵称','性别','头像');for($i=0;$i<count($cellData);$i++){$cellData[$i] = array_values($cellData[$i]);$cellData[$i][0] = str_replace('=',' '.'=',$cellData[$i][0]);}//dd($cellData);Excel::create('用户信息',function($excel) use ($cellData){$excel->sheet('score', function($sheet) use ($cellData){$sheet->rows($cellData);});})->export('xls');die;}
}

我来对上面的代码进行解释下。
a. ini_set设置内存溢出大小和超时时间是因为我的数据量比较大,不想直接去php.ini中修改,所以直接在这设置。你也可以修改excel.php配置项中的缓存大小,适当调整。
b. 首先你得需要知道cellData是一个二维数组,并且二维数组中的每一个一维数组必须是索引数组才行,这样格式上才能正确。
所以,我对我查询出的$cellData先进行了toArray()转化操作。然后我让你看下查询出的结构,因为我们数组表中的每个列都是一个字段,所以决定了一维数组是关联数组,需要去键处理。

for循环处理后就是:

 

  for循环中的另一个
php
$cellData[$i][0] = str_replace('=',' '.'=',$cellData[$i][0]);

这个地方是比较坑的一个地,因为Excel单元格当你的导出数据中某个列的某个值第一个字符是等号“=”,他就会进行计算处理,然后就报错了。比如我到处的某个昵称是“=阳光”,我就吧等号匹配替换为空格加等号了
其实本不需要进行匹配替换的,因为在excel.php文件中有配置项,但是我配置了并不生效,后续找到更好的解决方法会及时更新,或者有哪位知道了可以指点一下。  

 /*|--------------------------------------------------------------------------| Calculate|--------------------------------------------------------------------------|| By default cells with formulas will be calculated.|*/'calculate'               => false,---------------------
作者:谷谷谷 
来源:CSDN 
原文:https://blog.csdn.net/gu_wen_jie/article/details/79296470?utm_source=copy 
版权声明:本文为博主原创文章,转载请附上博文链接!

  

默认情况下,计算公式的单元格将被计算。我设置为false没生效。所以匹配替换。

如果你要导出csv或者xlsx文件,只需将export方法中的参数改成csv或xlsx即可。也可以进行连贯操作直接将导出的文件直接保存到服务器上。 
使用store方法:

 Excel::create('用户信息',function($excel) use ($cellData){$excel->sheet('score', function($sheet) use ($cellData){$sheet->rows($cellData);});})->store('xls')->export('xls');---------------------
作者:谷谷谷 
来源:CSDN 
原文:https://blog.csdn.net/gu_wen_jie/article/details/79296470?utm_source=copy 
版权声明:本文为博主原创文章,转载请附上博文链接!

  ok,导出完成。

 

2-1 导入:

导入我们可以直接用第一步注册的门面Excel门面上的load方法

/**** Excel导入*/public function import(){$filePath = 'storage/exports/'.iconv('UTF-8', 'GBK', '用户信息').'.xls';Excel::load($filePath, function($reader) {$data = $reader->all();dd($data);});}

  ok,导入完成。

 

转载于:https://www.cnblogs.com/sz-xioabai/p/9765382.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国外 广告牌_广告牌下一首流行歌曲的分析和预测,第1部分

国外 广告牌Using Spotify and Billboard’s data to understand what makes a song a hit.使用Spotify和Billboard的数据来了解歌曲的流行。 Thousands of songs are released every year around the world. Some are very successful in the music industry; others less so…

Jmeter测试普通java类说明

概述 Apache JMeter是Apache组织开发的基于Java的压力测试工具。本文档主要描述用Jmeter工具对基于Dubbo、Zookeeper框架的Cassandra接口、区块链接口进行压力测试的一些说明&#xff0c;为以后类似接口的测试提供参考。 环境部署 1、 下载Jmeter工具apache-jmeter-3.3.zip&am…

opencv:Canny边缘检测算法思想及实现

Canny边缘检测算法背景 求边缘幅度的算法&#xff1a; 一阶导数&#xff1a;sobel、Roberts、prewitt等算子 二阶导数&#xff1a;Laplacian、Canny算子 Canny算子效果比其他的都要好&#xff0c;但是实现起来有点麻烦 Canny边缘检测算法的优势&#xff1a; Canny是目前最优…

关于outlook签名图片大小的说明

96 dpiwidth576 height114转载于:https://blog.51cto.com/lch54734/2298115

opencv:畸变矫正:透视变换算法的思想与实现

畸变矫正 注意&#xff1a;虽然能够成功矫正但是也会损失了部分图像&#xff01; 透视变换(Perspective Transformation) 概念&#xff1a; 透视变换是将图片投影到一个新的视平面(Viewing Plane)&#xff0c;也称作投影映射(Projective Mapping)。 我们常说的仿射变换是透视…

数据多重共线性_多重共线性对您的数据科学项目的影响比您所知道的要多

数据多重共线性Multicollinearity is likely far down on a mental list of things to check for, if it is on a list at all. This does, however, appear almost always in real-life datasets, and it’s important to be aware of how to address it.多重共线性可能根本不…

PHP工厂模式计算面积与周长

<?phpinterface InterfaceShape{ function getArea(); function getCircumference();}/** * 矩形 */class Rectangle implements InterfaceShape{ private $width; private $height; public function __construct($width,$height){ $this->width$…

K-Means聚类算法思想及实现

K-Means聚类概念&#xff1a; K-Means聚类是最常用的聚类算法&#xff0c;最初起源于信号处理&#xff0c;其目标是将数据点划分为K个类簇&#xff0c; 找到每个簇的中心并使其度量最小化。 该算法的最大优点是简单、便于理解&#xff0c;运算速度较快&#xff0c;缺点是只能应…

(2.1)DDL增强功能-数据类型、同义词、分区表

1.数据类型 &#xff08;1&#xff09;常用数据类型  1.整数类型 int 存储范围是-2,147,483,648到2,147,483,647之间的整数&#xff0c;主键列常设置此类型。 &#xff08;每个数值占用 4字节&#xff09; smallint 存储范围是-32,768 到 32,767 之间的整数&#xff0c;用…

充分利用昂贵的分析

By Noor Malik努尔马利克(Noor Malik) Let’s say you write a query in Deephaven which performs a lengthy and expensive analysis, resulting in a live table. For example, in a previous project, I wrote a query which pulled data from an RSS feed to create a li…

【java并发编程艺术学习】(一)初衷、感想与笔记目录

不忘初心&#xff0c;方得始终。 学习java编程这么长时间&#xff0c;自认为在项目功能需求开发中没啥问题&#xff0c;但是之前的几次面试和跟一些勤奋的或者小牛、大牛级别的人的接触中&#xff0c;才发现自己的无知与浅薄。 学习总得有个方向吧&#xff0c;现阶段就想把并发…

层次聚类和密度聚类思想及实现

层次聚类 层次聚类的概念&#xff1a; 层次聚类是一种很直观的算法。顾名思义就是要一层一层地进行聚类。 层次法&#xff08;Hierarchicalmethods&#xff09;先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后&#xff0c;再 计算类与类之间的距离&#xff0…

通配符 或 怎么浓_浓咖啡的咖啡渣新鲜度

通配符 或 怎么浓How long could you wait to brew espresso after grinding? Ask a barista, any barista, and I suspect their answer is immediately or within a few minutes. The common knowledge on coffee grounds freshness is that after 30 minutes or so, coffee…

保留

看见 你在我眼前 不去猜想我们隔多远 当我 夜幕中准备 只想让沉默的能开解 在不同的遭遇里 我发现你的瞬间 有种不可言说的温柔直觉 在有限的深夜消失之前 触摸你的脸 我情愿这是幻觉 也不愿是种告别 已经忘了 你的名字 就在这座 寂静星石 怎么还有 你的样子 被保留 给我 一整个…

《netty入门与实战》笔记-02:服务端启动流程

为什么80%的码农都做不了架构师&#xff1f;>>> 1.服务端启动流程 这一小节&#xff0c;我们来学习一下如何使用 Netty 来启动一个服务端应用程序&#xff0c;以下是服务端启动的一个非常精简的 Demo: NettyServer.java public class NettyServer {public static v…

谱聚类思想及实现

&#xff08;这个我也没有怎么懂&#xff0c;为了防止以后能用上&#xff0c;还是记录下来&#xff09; 谱聚类 注意&#xff1a;谱聚类核心聚类算法还是K-means 算法进行聚类~ 谱聚类的实现过程&#xff1a; 1.根据数据构造一个 图结构&#xff08;Graph&#xff09; &…

Tengine HTTPS原理解析、实践与调试【转】

本文邀请阿里云CDN HTTPS技术专家金九&#xff0c;分享Tengine的一些HTTPS实践经验。内容主要有四个方面&#xff1a;HTTPS趋势、HTTPS基础、HTTPS实践、HTTPS调试。 一、HTTPS趋势 这一章节主要介绍近几年和未来HTTPS的趋势&#xff0c;包括两大浏览器chrome和firefox对HTTPS的…

Linux 指定运行时动态库路径【转】

转自&#xff1a;http://www.cnblogs.com/cute/archive/2011/02/24/1963957.html 众所周知&#xff0c; Linux 动态库的默认搜索路径是 /lib 和 /usr/lib 。动态库被创建后&#xff0c;一般都复制到这两个目录中。当程序执行时需要某动态库&#xff0c; 并且该动态库还未加载到…

opencv:SIFT——尺度不变特征变换

SIFT概念&#xff1a; Sift&#xff08;尺度不变特征变换&#xff09;&#xff0c;全称是Scale Invariant Feature Transform Sift提取图像的局部特征&#xff0c;在尺度空间寻找极值点&#xff0c;并提取出其位置、尺度、方向信息。 Sfit的应用范围包括 物体辨别、机器人地图…

pca(主成分分析技术)_主成分分析技巧

pca(主成分分析技术)介绍 (Introduction) Principal Component Analysis (PCA) is an unsupervised technique for dimensionality reduction.主成分分析(PCA)是一种无监督的降维技术。 What is dimensionality reduction?什么是降维&#xff1f; Let us start with an exam…