zhaoyang-1989

(文章引用来源 http://www.cnblogs.com/djwhome/p/9322112.html   有自己的补充用于记录)

(在此次项目中,本人亲自尝试,标题中文无论如何转换(GBK、gb2312、utf-8)都不能正常读取。包括.xsl 文件中存在中文也不能正常读取。所以本人放弃了.xsl中的一切中文

在项目开发中 最常用的就是把数据导出成excel的文件报表了

然而新下的项目中啥也没有;没有excel的扩展

会报这个错误

然后你需要通过composer安装这个依赖

学习源头:https://www.jianshu.com/p/4a2457efbf91

excel官方文档:http://laravelacademy.org/post/2024.html

1,使用Composer安装依赖


在Laravel项目根目录下使用Composer安装依赖:

composer require maatwebsite/excel ~2.1

ps:一定要加上~2.1!!!因为现在已经更新到3.0版本了,如果你不加的话,会安装最新的3.0版本!等运行时候就会报错,类似下面这样的报错

Symfony\Component\Debug\Exception\FatalThrowableError(E_ERROR)Call to undefined method Maatwebsite\Excel\Excel::create(),


2,安装后,修改设置

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

Maatwebsite\Excel\ExcelServiceProvider::class,


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

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


 

3、测试Excel文件

创建一个控制器ExcelController.php:

php artisan make:controller ExcelController 


然后在routes.php中定义相关路由:

Route::get(\'excel/export\',\'ExcelController@export\');

Route::get(\'excel/import\',\'ExcelController@import\');


然后实现导出、导入功能:

<?php

namespace App\Http\Controllers;

use App\Http\Requests;

use Illuminate\Http\Request;

use App\Http\Controllers\Controller;

use Excel;

class ExcelController extends Controller

{

    public function export()

    {

        $cellData = [

     [\'id\',\'name\',\'number\'],
    [\'10001\',\'AAAAA\',\'99\'],
    [\'10002\',\'BBBBB\',\'92\'],
    [\'10003\',\'CCCCC\',\'95\'],
    [\'10004\',\'DDDDD\',\'89\'],
    [\'10005\',\'EEEEE\',\'96\'],

        ];

        Excel::create(\'users\',function($excel) use ($cellData){

            $excel->sheet(\'score\', function($sheet) use ($cellData){

                $sheet->rows($cellData);

            });

        })->store(\'xls\')->export(\'xls\');

    }

    public function import(){

        $filePath = \'storage/exports/users.xls\';

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

            $data = $reader->all(); dd($data);

        });

        exit;

    }

}


如果你要导出csv或者xlsx文件,只需将export方法中的参数改成csv或xlsx。

store方法,将该Excel文件保存到服务器上,文件默认保存到storage/exports目录下,iconv()是为了防止文件名中文乱码。

访问 http://youdemain/excel/export

 

访问 http://youdemain/excel/import

 

分类:

技术点:

相关文章:

  • 2021-12-05
  • 2022-12-23
  • 1970-01-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-18
  • 2021-09-09
猜你喜欢
  • 2021-05-26
  • 2022-03-07
  • 2021-11-17
  • 2021-11-06
  • 2022-12-23
  • 2021-05-01
  • 2022-01-18
相关资源
相似解决方案