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、导出的方法:
<?php namespace 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,导入完成。
laravel 导出插件的更多相关文章
- laravel 导出导入excel和csv文件的 使用
在项目中用到的常用功能数据导入导出 在laravel有插件可以直接使用 方便快捷 学习源头: https://www.cnblogs.com/martianShu/p/5869270.html htt ...
- jsexcel导出插件
ExcelTable.js /* * author:wenluanlai */ (function ($) { Date.prototype.Format = function (fmt) { var ...
- 引擎设计跟踪(九.14.2a) 导出插件问题修复和 Tangent Space 裂缝修复
由于工作很忙, 近半年的业余时间没空搞了, 不过工作马上忙完了, 趁十一有时间修了一些小问题. 这次更新跟骨骼动画无关, 修复了一个之前的, 关于tangent space裂缝的问题: 引擎设计跟踪( ...
- 万圣节福利:红孩儿3D引擎开发课程《3ds max导出插件初步》
ds max文件夹,插件文件夹以及3ds max的可执行程序文件夹: 位的,这里要改成x64,否则启动程序后3ds max会提示"不是有效的win32程序"之类的对话框. 然后要将 ...
- Eclipse导出插件工程
一.Feature Projecties工程设置 1. 新建一个Feature Projecties 2. 选择我们的插件工程,finish 3. 在目录下新建一个Category definitio ...
- eclipse plugin 导出插件包
当我们的插件在完成一个阶段性开发的时候,我们要发布一个1.0的版本.这个时候会碰到一个问题.如何把我们的插件打成包?有多种途径,下面具体讨论一下. 首先从插件完成到被他人(或者我们自己)使用有两个步骤 ...
- Excel导出插件
前言 一个游戏通常需要10多个Excel表格或者更多来配置,一般会通过导出csv格式读取配置. 本文提供导出Excel直接生成c#文件,对应数据直接生成结构体和数组,方便开发排错和简化重复写每个表格的 ...
- Excel导出插件-VSTO
前言 一个游戏通常需要10多个Excel表格或者更多来配置,一般会通过导出csv格式读取配置. 本文提供导出Excel直接生成c#文件,对应数据直接生成结构体和数组,方便开发排错和简化重复写每个表格的 ...
- laravel安装插件laravel-ide-helper
1.插件位置laravel-ide-helper https://github.com/barryvdh/laravel-ide-helper 2.首先改变镜像源为国内的镜像源 P { margin- ...
随机推荐
- 分享知识-快乐自己:解决 Maven 无法下载 fastdfs-client-java 依赖。
因为fastdfs-client-java-1.27-SNAPSHOT.jar这个依赖包在maven中央仓库是没有的. 需要自己编译源码成jar本地安装到maven 的本地仓库,安装完以后就能正常引用 ...
- hadoop_学习_02_Hadoop环境搭建(单机)
一.环境准备 1.说明 hadoop的下载来源有: 官方版本:http://archive.apache.org/dist/hadoop/ CDH版本:http://archive.cloudera. ...
- Oracle--存储过程和自定义函数
一.相关概念 1.存储过程和存储函数 ~指存储在数据库中供所有用户程序调用的子程序 ~存储过程和存储函数的相同点:完成特定功能的程序 ~存储过程和存储函数区别:是否用return语句返回值 2.创建和 ...
- 使用Chrome采集摄像头并生成视频下载
主要使用2个技术点:WebRtc 的 getUserMedia 和 MediaRecorder 注意点 开始录制调用 start 方法要传入一个采样间隔,这样录制的媒体会按照你设置的值进行分割成一个个 ...
- linux命令学习笔记(11):nl命令
nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 等等的功能. .命令格式: nl [选项]... [文件]... .命令参数: -b :指定行号 ...
- informix 把数据从一个表倒到另外一个表中
drop table zrjReinUnClaimTmpT; create table zrjReinUnClaimTmpT ( mainid SERIAL not null, RepayNo var ...
- ffmpeg解码RTSP/TCP视频流H.264(QT界面显示视频画面)
源码下载地址: http://download.csdn.net/detail/liukang325/9489952 我用的ffmpeg版本为 ffmpeg-2.1.8.tar.bz2 版本低了恐怕有 ...
- bzoj2654tree
给定一个n个点m条边的图,每条边有黑白两色,求出恰好含need条白边的最小生成树 最小生成树...仿佛并没有什么dp的做法 大概还是个kruskal的板子再加点什么东西 考虑到“恰好含need条白边” ...
- 【caffe】卷积层代码解析
1.Forward_cpu conv_layer.cpp template <typename Dtype> void ConvolutionLayer<Dtype>::For ...
- 汇编题目:在DOS下,按F1键后改变当前屏幕的显示颜色
我们都知道int9中断是键盘的按键中断程序,按下键盘触发int9中断,不懂int9中断的请自己去百度查查说明和用法 利用中断任务安装一个新的int 9中断例程,功能:在DOS下,按F1键后改变当前屏幕 ...