<?php

use Maatwebsite\Excel\Classes\LaravelExcelWorksheet;
use Maatwebsite\Excel\Exceptions\LaravelExcelException;
use Maatwebsite\Excel\Facades\Excel;
use Maatwebsite\Excel\Writers\CellWriter;
use Maatwebsite\Excel\Writers\LaravelExcelWriter;
use PHPExcel_Exception; trait HandlerExcelTrait
{
/**
* @var array
*/
protected $cellLetter = [
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q',
'R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD',
'AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN',
'AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ'
]; /**
* $data = Array(
* [0] => Array(
* [0] => 序号
* )
* [1] => Array(
* [id] => 1
* )
* )
* $title = ['测试']
* @param string $fileName
* @param array $title
* @param array $data
* @return mixed
* @throws LaravelExcelException
*/
public function exportExcel(string $fileName, array $title, array $data)
{
try {
return Excel::create($fileName, function ($excel) use ($data, $title) {
/** @var LaravelExcelWriter $excel */
$excel->sheet('sheet', function ($sheet) use ($data, $title) {
/** @var LaravelExcelWorksheet $sheet */
$column = $this->cellLetter[count($data[0]) - 1]; try {
$sheet->fromArray($data, null, 'A1', true, false);
} catch (PHPExcel_Exception $e) {
throw new LaravelExcelException($e->getMessage());
} /** 此为设置整体样式 */
$sheet->setStyle([
'font' => [
'name' => 'Calibri',
'size' => 12,
'bold' => false,
]
])
->prependRow($title)
->row(1, function ($row) {
/** @var CellWriter $row */
$row->setFont(array( //设置标题的样式
'family' => 'Calibri',
'size' => '16',
'bold' => true
));
})
->mergeCells('A1:' . $column . '1')
->cell('A2:' . $column . '2', function ($cells) {
/** @var CellWriter $cells */
$cells->setBackground('#AAAAFF');
})->setHeight(1, 30)
->setAutoFilter('A2:' . $column . '2'); //设置自动过滤 /** 此为针对每行的高宽进行设置 */
for ($i = 2; $i <= count($data[0]) + 1; $i++) {
$sheet->setHeight($i, 20);
$sheet->setWidth($this->cellLetter[$i - 1], 30);
$sheet->row($i - 1, function ($row) {
/** @var CellWriter $row */
$row->setAlignment('center');
$row->setValignment('center');
});
}
});
})->export('xlsx');
} catch (LaravelExcelException $e) {
throw new LaravelExcelException($e->getMessage());
}
}
}

原文:https://learnku.com/articles/7095/laravel-excel-beautification-in-laravel

Laravel 中使用 Laravel-Excel 美化的更多相关文章

  1. Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

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

  2. 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

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

  3. Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...

  4. laravel 5.4 导出excel表格

    1.在laravel根目录下面找到一个composer.json文件 打开并在require下面加上一句话,如图所示: 注:以后这个excel的版本号可能还会修改 2.执行 composer inst ...

  5. Laravel中的日志与上传

    PHP中的框架众多,我自己就接触了好几个.大学那会啥也不懂啥也不会,拿了一个ThinkPHP学了.也许有好多人吐槽TP,但是个人感觉不能说哪个框架好,哪个框架不好,再不好的框架你能把源码读上一遍,框架 ...

  6. laravel中日志为daily时如何设置最大保存天数

    在laravel中,日志设置为daily时,默认保存七天的日志,超过则清除七天前的日志.可修改默认的设置,假如要保存30天的日志,则配置如下: 在配置文件config/app.php中添加如下代码: ...

  7. laravel中的错误与日志

    日志 laravel中的日志是基于monolog而封装的.laravel在它上面做了几个事情: 把monolog中的addInfo等函数简化成为了info这样的函数 增加了useFiles和useDa ...

  8. laravel中的$request对象构造及请求生命周期

    laravel应用程序中index.php是所有请求的入口.当用户提交一个form或者访问一个网页时,首先由kernel捕捉到该session PHP运行环境下的用户数据, 生成一个request对象 ...

  9. cron以及在laravel中使用cron

    yum install vixie-cron yum install crontabs /bin/systemctl restart crond.service #启动服务 /bin/systemct ...

  10. Laravel中的队列处理

    Laravel中的队列处理 队列介绍 为什么要有消息队?这里先对其进行一个简单的介绍,方便还不了解的同学理解.在面向对象里,有一个很简单的概念--消息传递,而消息队列就可以在它上面扩展一下,把它说的更 ...

随机推荐

  1. android中的常用布局管理器(三)

    接上篇博客 (5)TableLayout     表格布局管理器 在android中,线性布局和表格布局用的是最多的. 在很多的输出操作中,往往会使用表格的形式对显示的数据进行排版,tablelayo ...

  2. Vue中进度条的使用

    1. 安装npm install --save nprogress 2.导入js和css import NProgress from 'nprogress'import 'nprogress/npro ...

  3. 深入浅出Mybatis系列十-SQL执行流程分析(源码篇)

    注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 最近太忙了,一直没时间继续更新博客,今天忙里偷闲继续我的Mybatis学习之旅.在前 ...

  4. 剑指offer-面试题18-删除链表的节点-链表

    /* 题目:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点. */ /* 思路: 将要删除的节点的下一个节点的value和next复制过来,删除下一个节点. 考虑两种特殊情 ...

  5. [CF662C Binary Table][状压+FWT]

    CF662C Binary Table 一道 FWT 的板子-比较难想就是了 有一个 \(n\) 行 \(m\) 列的表格,每个元素都是 \(0/1\),每次操作可以选择一行或一列,把 \(0/1\) ...

  6. ABS与PC材质

    PC材料和ABS材料都是最常用的塑料材质,它们在材质.价格.性能上都有不同点. (一)PC材料 优点:PC是一种综合性能优良的非晶型热塑性树脂,具有优异的电绝缘性.延伸性.尺寸稳定性及耐化学腐蚀性,较 ...

  7. R ggplot学习笔记1

    R 可视化学习笔记 记参数挺费劲的,还是用的时候查官方文档吧,现在记个大概就行吧~ 1.ggplot2分层次绘图 1.1 核心理念 把绘图与数据分离,把数据相关的绘图与数据无关的绘图分离,按图层作图. ...

  8. 牛客网 —— 爱奇艺2020校招C++方向笔试题 总结

    错了5,6个,主要集中在数据库和操作系统上.    C++还需要提高熟练度. 总结 第6题: 折半查找树:根据二分查找构造得到的树,它一定是一个二叉排序树,是一个特殊的二叉排序树.  (接近于平衡二叉 ...

  9. C++中的IO类(iostream, fstream, stringstream)小结(转)

    原文地址:https://blog.csdn.net/stpeace/article/details/44763009

  10. (一)Python模块化编程简介

    1 引言 众所周知,模块化编程具备很多优点,尤其在复杂项目上体现更为明显.Python模块化编程有助于开发者统筹兼顾和分工协作,并提升代码灵活性和可维护性,是编程开发者不可或缺的一项重要工具. 2 P ...