1. 程式人生 > >Laravel Excel實現Excel/CSV檔案匯入匯出的功能詳解(合併單元格,設定單元格樣式)

Laravel Excel實現Excel/CSV檔案匯入匯出的功能詳解(合併單元格,設定單元格樣式)

Laravel Excel實現Excel/CSV檔案匯入匯出(合併單元格,設定單元格樣式)

這篇文章主要給大家介紹了關於在Laravel中如何使用Laravel Excel實現Excel/CSV檔案匯入匯出功能的相關資料,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

解決問題:在很對真實開發需求下,我們的Excel檔案並不是單純的匯出,還需要對其內容進行完善和修飾,這就是我們這篇文章出現的真正原因,希望能幫助到更多的小夥伴,本部落格會持續更新,希望有不對的地方小夥伴的多多的指出

1.簡介

Laravel Excel 是一款基於PHPExcel開發的Laravel框架專用的Excel/CSV 檔案匯入匯出功能的擴充套件包,用起來的非常方便。
它的Github地址是:

https://github.com/Maatwebsite/Laravel-Excel
當然了,你也可以使用PHPExcel,但是請注意,PHPExcel官方團隊已經停止維護了,現在官方團隊開發維護的是它的升級版PHPExcel擴充套件包,叫做:PhpSpreadsheet

2.安裝與配置

這裡寫圖片描述
好,我們先去官網注意一下細節,針對我們不同版本的環境下載我們需要的安裝包,個人php7.0,下載2.1版本
1. 首先在Laravel專案根目錄下使用Composer安裝依賴:

composer require "maatwebsite/excel:~2.1.0"

2.在config/app.php中註冊服務提供者到providers陣列

Maatwebsite\Excel\ExcelServiceProvider::class,

3.在config/app.php中註冊門面到aliases陣列:

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

4.之後生成配置檔案,生成之後再config資料夾裡有一個excel.php

php artisan vendor:publish

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 檔案到處功能

 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');
 }

}

好現在我們已經實現了,基本的匯出功能,但是:老闆說,這不太符合需求,我想要第一排,三個單元格合併的那種,這可急壞我了,也是我去找度娘,還是在前輩們的身影裡看到了希望,接下為大家介紹一下:如何設定單元格資訊

$cellData = ['90','88','85','263'];
Excel::create('財務報表',function($excel) use ($cellData){

                    $excel->sheet('財務報表', function($sheet) use ($cellData){
                        $tot = count($cellData) ;
                        //設定單元格寬度、字型大小
                        $sheet->setWidth(array(
                            'A'     =>  12,
                            'B'     =>  12,
                            'C'     =>  12,
                            'D'     =>  12
                        ))->rows($cellData)->setFontSize(12);

                        // 選單 樣式
                        $sheet->cells('A1:C1', function($cells) {
                            $cells->setAlignment('center');
                            $cells->setFontWeight('bold');
                        });

                        // 總分 右對齊
                        $sheet->cells('D', function($cells) {
                            $cells->setAlignment('right');
                        });
                        // 總分內容樣式
                        $sheet->cells('D', function($cells) {
                            $cells->setAlignment('left');
                            $cells->setFontColor('#a09b9b');
                            $cells->setFontFamily('Calibri');
                            $cells->setFontWeight('normal');
                            $cells->setFontSize(12);
                        });
                        // 高亮顯示
                        $sheet->cells('A3:D3', function($cells) {
                            $cells->setBackground('#87eabd');
                            $cells->setFontWeight('bold');
                            $cells->setFontSize(14);
                        });
                    //合併行
                    $sheet->mergeCells('A1:D1'); 
                    //填充每個單元格的內容
                    $sheet->cell('A1','張三')
                    $sheet->cell('A2','語文')
                    $sheet->cell('B2','數學')
                    $sheet->cell('C2','外語')
                    $sheet->cell('D2','總分')                    
                    $sheet->cell('A3',$cellData[0])
                    $sheet->cell('B3',$cellData[1])
                    $sheet->cell('C3',$cellData[2])
                    $sheet->cell('C3',$cellData[3])
                    });

                })->export('xls');

哇,好了,這下又解決了一塊心頭病,

注意:以上為測試資料,如果想更好的實現,請使用陣列傳輸資料,一個基本的資料匯出功能第一種方法比較方便快捷,只有在特殊需求情況下才會使用第二種情況,比如:合併單元格,制定特殊單元格樣式,如果如上圖,前兩排為固定值,只需定義前兩排的值,後邊用陣列便利$shell->cell(),防止太多冗餘程式碼,給專案帶來不必要的壓力

4.匯入檔案

匯入我們可以直接用第一步註冊的門面Excel門面上的load方法

    public function import(){
        $filePath = 'storage/exports/'.iconv('UTF-8', 'GBK', '使用者資訊').'.xls';
        Excel::load($filePath, function($reader) {
            $data = $reader->all();
            dd($data);
        });
    }

一個簡單的操作就完成了,這個外掛使用起來挺不錯的。上方出現的問題,解決的或者有問題的請留言。

如果對上邊提到方法有不足的地方請多多指出,如果對您或者您的身邊的小夥伴有幫助請多多推廣,謝謝

下邊推送一個連線:http://www.bcty365.com/content-153-6235-1.html
這篇文章更好的解釋了laravel Excel的每一個屬性,但是部落格樣式爛的一撇(作者看到別打我,嘿嘿),也謝謝這個作者對這篇部落格的幫助,

相關推薦

Laravel 使用擴充套件包maatwebsite/excel 實現 Excel/CSV 檔案匯入匯出功能

一、安裝1、composer require maatwebsite/excel ~2.0.02、在專案下composer.json中require裡新增"maatwebsite/excel":"~2.0.0",並執行composer update 載入該包 二、配置1、在

Laravel 5 中使用 Laravel Excel 實現 Excel/CSV 檔案匯入匯出功能

1、簡介Laravel Excel 在 Laravel 5 中整合 PHPOffice 套件中的 PHPExcel,從而方便我們以優雅的、富有表現力的程式碼實現Excel/CSV檔案的匯入和匯出。本文我們將在Laravel中使用Laravel Excel簡單實現Excel檔案

Laravel Excel實現Excel/CSV檔案匯入匯出功能合併單元設定單元樣式

Laravel Excel實現Excel/CSV檔案匯入匯出(合併單元格,設定單元格樣式) 這篇文章主要給大家介紹了關於在Laravel中如何使用Laravel Excel實現Excel/CSV檔案匯入匯出功能的相關資料,文中通過示例程式碼介紹的非常詳細,對大

js實現Excel檔案匯入匯出、利用 js-xlsx 實現 Excel 檔案匯入匯出-功能示例

1.匯入功能實現 下載js-xlsx到dist複製出xlsx.full.min.js引入到頁面中 然後通過FileReader物件讀取檔案利用js-xlsx轉成json資料 <!DOCTYPE html> <html> <head>

純前端利用 js-xlsx 實現 Excel 檔案匯入匯出功能示例

1.匯入功能實現 下載js-xlsx到dist複製出xlsx.full.min.js引入到頁面中 然後通過FileReader物件讀取檔案利用js-xlsx轉成json資料 程式碼實現(==>示例<==) <!DOCTYPE html> <html> <he

excelcsv檔案匯入匯出

匯入csv檔案 Private Sub Inport_Renkei_CSV_Click_Click() Dim rowIndex As Integer, item As Integer

SSM整合開發之CSV檔案匯入匯出實戰-鍾林森-專題視訊課程

SSM整合開發之CSV檔案匯入匯出實戰—65人已學習 課程介紹         本課程將給大家分享如何基於SSM實現CSV檔案的匯入匯出,並講解目前企業級JavaWeb應用mvc三層模式的開發流程,

mysql匯入匯出命令

mysql匯入匯出命令詳解 一、匯出資料庫用mysqldump命令(注意mysql的安裝路徑,即此命令的路徑):/usr/local/mysql/bin/  --->  mysql的data目錄1、匯出資料和表結構:mysqldump -u使用者名稱 -p密碼 資料庫名 >

SpringBoot實現檔案上傳功能

[toc] # 利用SpirngBoot實現檔案上傳功能 ## 零、本篇要點 - 介紹SpringBoot對檔案上傳的自動配置。 - 介紹MultipartFile介面。 - 介紹SpringBoot+Thymeleaf檔案上傳demo的整合。 - 介紹對檔案型別,檔名長度等判斷方法。 ## 一、Sp

Eclipse匯入Maven專案新手初學

最近遇到Maven管理下的spring MVC專案,組內某位將專案程式碼扔過來,一臉懵逼(囧),查閱了一些資料後終於將此專案執行通了(>_<),特此記錄下來與各位分享。 通俗的來說,Maven就是個類似於Git的專案管理工具。而Spring MVC就是將M(Mo

Nginx配置檔案nginx.conf中文總結

#定義Nginx執行的使用者和使用者組 user www www; #nginx程序數,建議設定為等於CPU總核心數。 worker_processes 8; #全域性錯誤日誌定義型別,[ debug | info | notice | warn | erro

Linux命令-自動掛載檔案/etc/fstab功能[轉]

一、/etc/fstab檔案的作用          磁碟被手動掛載之後都必須把掛載資訊寫入/etc/fstab這個檔案中,否則下次開機啟動時仍然需要重新掛載。         系統開機時會主動讀取/etc/fstab這個檔案中的內容,根據檔案裡面的配置掛載磁碟。這樣

Linux命令-自動掛載檔案/etc/fstab功能

一、/etc/fstab檔案的作用          磁碟被手動掛載之後都必須把掛載資訊寫入/etc/fstab這個檔案中,否則下次開機啟動時仍然需要重新掛載。         系統開機時會主動讀取/etc/fstab這個檔案中的內容,根據檔案裡面的配置掛載磁碟。這

使用LVS實現負載均衡原理及安裝配置

bin 瀏覽器 gate 裏的 高性能 target 相關 asq 空間 負載均衡集群是 load balance 集群的簡寫,翻譯成中文就是負載均衡集群。常用的負載均衡開源軟件有nginx、lvs、haproxy,商業的硬件負載均衡設備F5、Netscale。這裏主要是

Java實現Excel檔案匯入匯出

1.匯入jar包 2.建立entity類 public class Book { private String name; private double price; private String author; public String getNa

Laravel 5使用Laravel Excel實現Excel/CSV文件導入導出的功能

使用 pat 不存在 data utf-8 標題 sts lda http https://mp.weixin.qq.com/s/Gel1eMHz6_eDWgDMaBQ5BQ 這篇文章主要給大家介紹了關於在Laravel 5中如何使用Laravel Excel實現Exc

配方 ExcelCSV匯入匯出

先來看下執行效果: 以下是實現步驟: 第一步:設計介面,參考上面的執行時設計介面即可; 第二步:建立DataFiles檔案,用於存放匯入匯出的Excel或Csv模板來使用的 1、DataFiles資料夾裡主要包含三個檔案  TplPeiFang.csv(需要匯入

js-xlsx實現Excel匯入匯出功能

一:匯入功能 讀取excel的多個sheet資料 <script type="text/javascript" src="js/xlsx.core.min.js"></script> <table style="width

Java程式設計之CSV檔案匯入匯出實現

年前在開發功能模組的時候用到了CSV檔案匯入匯出,就此整理一下,便於大家參考。 匯入匯出功能很多時候用到的都是Excel檔案,但是現在越來越多的使用了CSV檔案進行此操作,它是一個純文字檔案,可以用記事本開啟,也可以用Excel開啟。CSV檔案不像Excel那樣有很多條條框

Laravel Excel 實現 Excel-CSV 文件導入導出功能

except csdn href option 解釋 cep png xls web Laravel Excel 是一款基於 PHPExcel 開發的Laravel框架專用的 Excel/CSV 文件導入導出功能的擴展包,用起來的非常方便。 它的 Github 地址是:h