
1.Laravel Excel
Laravel Excel是一个扩展软件包,用于基于PHPExcel开发的Laravel框架的Excel / CSV文件的导入和导出功能。使用起来非常方便。
其Github地址为:
当然,您也可以使用PHPExcel,但请注意,PHPExcel官方团队已停止维护。现在,官方团队开发并维护其升级版的PHPExcel扩展程序包,称为:PhpSpreadsheet
我们今天主要介绍(因为我是前天在项目中使用了导出,最后选择了LaravelExxcel☺):Laravel Excel
2.安装
建议:在安装和使用每个扩展包时,请仔细查看作者或官方文档,例如Github上的自述文件,其中大多数是英文的,如果您不懂,也不要紧它,一些关键字可以理解它。您对PHP版本,Mysql版本等的要求。 。
例如:
让我们根据Github上的自述文件进行安装。

首先使用Composer在Laravel项目的根目录中安装依赖项:
composer require "maatwebsite/excel:~2.1.0"在config / app.php中将服务提供者注册到providers数组:
Maatwebsite\Excel\ExcelServiceProvider::class,在config / app.php中将外观注册到别名数组:
Excel => Maatwebsite\Excel\Facades\Excel::class,建议您生成Laravel Excel配置文件,使用以下命令:
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"然后您将在配置目录中找到一个excel.php文件
您可以打开它并查看常规配置项,主要是缓存,表单以及导入和导出设置。

3.导出文件
稍后我将直接显示我的测试代码,但是在此之前,您需要一个路由和一个控制器(一种导出方法)
创建两条路线:
//Excel导出
Route::get(/excel/export,Member\MemberController@export)->name(/excel/export);
//Excel导入
Route::get(/excel/import,Member\MemberController@import)->name(/excel/import);要创建控制器,可以使用artisan命令或手动创建它:
php artisan make:controller 控制器名称导出方法:
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$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循环后:
c。另一个在for循环中
php
$ cellData [$ i] [0] = str_replace('=',''。'=',$ cellData [$ i] [0]);
这个地方有点麻烦,因为当导出的数据中列的值的第一个字符在Excel单元格中为等号“ =”时,它将执行计算处理,然后报告错误。 。例如,我到处的昵称之一是“ = sunshine”,所以我只用空格加等号代替等号
实际上,不需要进行匹配和替换,因为excel.php文件中包含配置项,但是我的配置没有生效。如果以后找到更好的解决方案,它将及时更新,或者任何知道的人都可以提供一些指点。

/*
|--------------------------------------------------------------------------
| Calculate
|--------------------------------------------------------------------------
|
| By default cells with formulas will be calculated.
|
*/
calculate => false,默认情况下,将计算计算公式的单元格。我将其设置为false无效。因此,匹配并替换。
如果要导出csv或xlsx文件,只需将导出方法中的参数更改为csv或xlsx。您还可以执行连续操作以将导出的文件直接保存到服务器。
使用存储方法:
Excel::create(用户信息,function($excel) use ($cellData){
$excel->sheet(score, function($sheet) use ($cellData){
$sheet->rows($cellData);
});
})->store(xls)->export(xls);好,导出完成。
4.导入文件
导入我们可以直接在第一步中注册的Excel外观上使用load方法
/**
*
* Excel导入
*/
public function import(){
$filePath = storage/exports/.iconv(UTF-8, GBK, 用户信息)..xls;
Excel::load($filePath, function($reader) {
$data = $reader->all();
dd($data);
});
}一个简单的操作就完成了,这个插件很好用。如果您已经解决或遇到上述问题,请留言。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-320063-1.html
我们也要巡航才对吗
老家台湾的
是可以做到底
可以说这是在筛选优秀人人才