laravel框架excel 的导入导出功能

1、简介

Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的、富有表现力的代码实现Excel/CSV文件的导入和导出。

该项目的GitHub地址是:https://github.com/Maatwebsite/Laravel-Excel

本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出。

2、安装&配置

使用Composer安装依赖

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

composer require maatwebsite/excel ~2.0.0

安装后的设置

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

Maatwebsite\Excel\ExcelServiceProvider::class,

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

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

如果想要对Laravel Excel进行更多的自定义配置,执行如下Artisan命令:

php artisan vendor:publish

执行成功后会在config目录下生成一个配置文件excel.php。

3、导出Excel文件

为了演示Laravel Excel相关功能,我们为本测试创建一个干净的控制器ExcelController.php:

php artisan make:controller ExcelController --plain

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

Route::get(‘excel/export‘,‘[email protected]‘);
Route::get(‘excel/import‘,‘[email protected]‘);

接下来我们先在ExcelController.php中定义export方法实现导出功能:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

use Excel;

class ExcelController extends Controller
{
    //Excel文件导出功能 By Laravel学院
    public function export(){
        $cellData = [
            [‘学号‘,‘姓名‘,‘成绩‘],
            [‘10001‘,‘AAAAA‘,‘99‘],
            [‘10002‘,‘BBBBB‘,‘92‘],
            [‘10003‘,‘CCCCC‘,‘95‘],
            [‘10004‘,‘DDDDD‘,‘89‘],
            [‘10005‘,‘EEEEE‘,‘96‘],
        ];
        Excel::create(‘学生成绩‘,function($excel) use ($cellData){
            $excel->sheet(‘score‘, function($sheet) use ($cellData){
                $sheet->rows($cellData);
            });
        })->export(‘xls‘);
    }
}

我们在浏览器中访问http://laravel.app:8000/excel/export,会导出一个名为学生成绩.xls的Excel文件:

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

如果还要将该Excel文件保存到服务器上,可以使用store方法:

Excel::create(‘学生成绩‘,function($excel) use ($cellData){
     $excel->sheet(‘score‘, function($sheet) use ($cellData){
         $sheet->rows($cellData);
     });
})->store(‘xls‘)->export(‘xls‘);

文件默认保存到storage/exports目录下,如果出现文件名中文乱码,将上述代码文件名做如下修改即可:

iconv(‘UTF-8‘, ‘GBK‘, ‘学生成绩‘)

4、导入Excel文件

我们将刚才保存到服务器上的Excel文件导入进来,导入很简单,使用Excel门面上的load方法即可:

//Excel文件导入功能 By Laravel学院
public function import(){
    $filePath = ‘storage/exports/‘.iconv(‘UTF-8‘, ‘GBK‘, ‘学生成绩‘).‘.xls‘;
    Excel::load($filePath, function($reader) {
        $data = $reader->all();
        dd($data);
    });
}

load方法基于项目根路径作为根目录,同样我们对中文进行了转码,否则会提示文件不存在。

在浏览器中访问http://laravel.app:8000/excel/import,页面显示如下:

当然,Laravel Excel还有很多其它功能,比如将Blade视图导出为Excel或CSV,以及对导入/导出更加细粒度的控制,具体可参考其官方文档:http://www.maatwebsite.nl/laravel-excel/docs

原文地址:https://www.cnblogs.com/myworld2018/p/9178894.html

时间: 2024-10-10 05:41:17

laravel框架excel 的导入导出功能的相关文章

Excel的导入导出功能

POI组件的详细介绍文档: https://www.cnblogs.com/huajiezh/p/5467821.html .xls 对应 HSSFWorkbook book=new HSSFWorkbook(io); <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> <

Laravel Excel 实现 Excel-CSV 文件导入导出功能

Laravel Excel 是一款基于 PHPExcel 开发的Laravel框架专用的 Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便. 它的 Github 地址是:https://github.com/Maatwebsite/Laravel-Excel 安装 我们就按照GIthub上的readme文件进行安装吧. composer require "maatwebsite/excel:~2.1.0" 在 config/app.php 中注册服务提供者到 provid

ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例

这篇文章主要介绍了ThinkPHP使用PHPExcel实现Excel数据导入导出,非常实用的功能,需要的朋友可以参考下 本文所述实例是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错造成的,如果有问题大家务必要对路劲是否引用正确进行测试. 具体操作步骤如下: (一)导入Excel 第一,在前台html页面进行上传文件:如: <form method="post"

Excel格式导入导出数据(单语言版本)

Excel格式导入导出数据(单语言版本) 可以使用常用的excel格式导入导出相关数据,包含: 1. 商品分类: 2. 筛选组: 3. 筛选: 4. 商品资料: 5. 商品附加图片资料,(不包含图片本身的上传或抓取): 6. 商品选项: 7. 商品属性: 8. 产品特价数据: 9. 商品折扣数据: 10. 商品奖励积分数据: 特色: 1. 常用excel软件编辑商品数据后导入: 2. 导出的文件名称包含日期和时间,便于备份存档: 3. 由于涉及到服务器的内存,以及数据的多寡,可以将数据按照商品I

excel数据导入导出数据库

第一种方法: 先把Excel另存为.csv格式文件,如test.csv,再编写一个insert.ctl 用sqlldr进行导入! insert.ctl内容如下: load data          --1.控制文件标识 infile ‘my.csv‘          --2.要输入的数据文件名为my.csv append into table "tbl_test"   --3.向表table_name中追加记录 fields terminated by ‘,‘          

Excel jxl导入导出

JAVA EXCEL API简介 Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为是使用Java编写的,所以我们在Web应用中可以通过JSP.Servlet来调用API实现对Excel数据表的访问. 现在发布的稳定版本是V2.0,提供以下功能: 从Excel 95.97.2000等格式的文件中读取数据: 读取Exc

C#实现Excel的导入导出

Excel作为日常使用工具,在开发过程中经常会用到其导入导出功能.经过一个小的练习,学习了下导入导出功能. 导出篇: 从数据库查询到所要导出的数据,以xml的形势保存下来,最后输出excel的格式,保存下来. 首先是生成xml的表头 创建列 创建行 创建单元格 XmlDocument xd = new XmlDocument(); string TableTitle = XmlSheet(); xd.LoadXml(TableTitle); XmlNodeList NodeList = xd.D

excel的导入导出的实现

1.创建Book类,并编写set方法和get方法 1 package com.bean; 2 3 public class Book { 4 private int id; 5 private String name; 6 private String type; 7 // public int a; 8 9 public String getType() { 10 System.out.println("调用了类型方法"); 11 return type; 12 } 13 14 pu

aspose.cells excel表格导入导出

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Reflection; using System.IO; using Aspose.Cells; using System.Data; using System.ComponentModel; using System.Configuration; namespace src.Common { publ