<?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. css权值和优先级+命名规范

    选择器权值: 标签选择器:1 类选择器和伪类选择器:10 ID选择器:100 通配符选择器:0 行内样式:1000 !important 在一定条件下,优先级最高 常用的css样式命名 页面结构页头: ...

  2. exp导出含有双引号的表

    由于ORACLE默认的表名都是不区分大小写,在创建表时,在数据字典中存储的表名为大写.在有些情况下,如果创建的表在表名上加上双引号("),则创建的表其表名在数据字典中不作转换.比如 SQL& ...

  3. day 15 内置函数

    内置函数 不用def定义能直接用的函数,带括号的 locals() # 返回本地作用域中的所有名字 globals() # 返回全局作用域中的所有名字 global 变量 nonlocal 变量 迭代 ...

  4. JAVA成长之路SpringCloud脚印(一)

    从即日起开始学习SpringCloud,在这里记录下学习过程,共勉,欢迎指正. 环境:IDEA2019.3.3.JAVA13 一.spring cloud简介 spring cloud 为开发人员提供 ...

  5. Qt的qDebug()改写为cout

    经常用c++,qDebug()用的不习惯,将其改为cout,并且为了方便调试,还添加了文件名及行号. 代码如下: // __FILE__文件名,__LINE__行号,如果想看时间还可以添加__TIME ...

  6. Python带你来一次说走就走的环球旅行

      image 1.目 标 场 景 十一长假,相信大部分的朋友这会应该是在全国各地浪或者是在浪的路上,朋友圈成为你们表演的场所. 当然,也有一小戳朋友是选择家里蹲,你们是否感觉到无聊?是否想出去浪,参 ...

  7. 修改Ubuntu的apt-get源为国内镜像源的方法

    1.原文件备份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 2.编辑源列表文件 sudo vim /etc/apt/sources. ...

  8. F.Three pahs on a tree

    思路 两次bfs找出树的直径并处理出端点离树上各叶子节点的距离,在直径上找一点的子树叶子p3,使得dis(p1,p2) + dis(p2,p3) + dis(p1,p3)最大 易知上式是路径实长的两倍 ...

  9. elasticsearch index 过程

    (1)index request 到某一个Node(选择node的方式是采用round-robin)方法,此node 称为coordinate node,继续当前index request应该执行在哪 ...

  10. 基于Dapper的开源Lambda扩展LnskyDB 3.0已支持Mysql数据库

    LnskyDB LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼.,现在已经支持MySql和Sql serv ...