这篇文章主要介绍了Laravel Excel的功能怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Laravel Excel的功能怎么使用文章都会有所收获,下面我们一起来看看吧。 假设已经有一个 HTML 表格模版代码 — resources/views/customers/table.blade.php:
Firstname | Lastname | Createdat | Updatedat | ||
---|---|---|---|---|---|
{{$customer->id}} | {{$customer->first_name}} | {{$customer->last_name}} | {{$customer->email}} | {{$customer->created_at}} | {{$customer->updated_at}} |
你可以使用它去重复导入这个表格到 Excel步骤1. 生成一个 Export 类
phpartisanmake:exportCustomersFromView--model=Customer
步骤2. 使用 FromView 进行操作
namespaceAppExports; useAppCustomer; useIlluminateContractsViewView; useMaatwebsiteExcelConcernsFromView; classCustomersExportViewimplementsFromView { publicfunctionview():View { returnview('customers.table',[ 'customers'=>Customer::orderBy('id','desc')->take(100)->get() ]); } }
这里是导入的 Excel 文件:注意:这里只能导出 HTML 表格,不能具有任何标签,比如 html,body,div 等。虽然包的名称是 Laravel Excel,但是提供了多种导出格式,并且使用起来十分简单,只要在类里再添加一个参数即可:
returnExcel::download(newCustomersExport(),'customers.xlsx','Html');
比如这么做,就导出到了HTML,如下图所示:没有太多的样式,下面是源代码:不仅如此,它还可以导出到 PDF,甚至你可以从中选择三种库,使用方法是一样的,你只要在最后一个参数指定格式就好了,下面是一些例子。 文档示例:注意:你必须通过 composer 安装指定的 PDF 包,比如:
composerrequiredompdf/dompdf
导出的 PDF 如下所示:Laravel Excel 有一个强有力的「爸爸」 — PhpSpreadsheet。因此它就拥有其各种底层功能,包括各种方式的单元格格式化。此处是一个如何在 Laravel Export 类中使用它的例子,例如 app/Exports/CustomersExportStyling.php:步骤 1. 在头部引入适当的类。
useMaatwebsiteExcelConcernsWithEvents; useMaatwebsiteExcelEventsAfterSheet;
步骤 2. 在 implements 部分使用 WithEvents 接口。
classCustomersExportStylingimplementsFromCollection,WithEvents { //...
步骤 3. 用 AfterSheet 事件来创建 registerEvents() 方法。
/** *@returnarray */ publicfunctionregisterEvents():array { return[ AfterSheet::class=>function(AfterSheet$event){ //...此处你可以任意格式化 }, ]; }
这里有个例子:
/** *@returnarray */ publicfunctionregisterEvents():array { return[ AfterSheet::class=>function(AfterSheet$event){ //所有表头-设置字体为14 $cellRange='A1:W1'; $event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setSize(14); //将样式数组应用于B2:G8范围单元格 $styleArray=[ 'borders'=>[ 'outline'=>[ 'borderStyle'=>PhpOfficePhpSpreadsheetStyleBorder::BORDER_THICK, 'color'=>['argb'=>'FFFF0000'], ] ] ]; $event->sheet->getDelegate()->getStyle('B2:G8')->applyFromArray($styleArray); //将第一行行高设置为20 $event->sheet->getDelegate()->getRowDimension(1)->setRowHeight(20); //设置A1:D4范围内文本自动换行 $event->sheet->getDelegate()->getStyle('A1:D4') ->getAlignment()->setWrapText(true); }, ]; }
这些「随机」样例展示的结果如下所示:你可以在 Recipes page of PhpSpreadsheet docs中找到所有的以上以及更多示例。假设我们已经创建了Laravel 5.7
默认的users
表:现在我们尝试用简单的FromCollection
来导出用户表数据:
classUsersExportimplementsFromCollection { publicfunctioncollection() { returnUser::all(); } }
在导出的Excel 里,你只能看到如下字段,但是没有password
和remember_token
:这是因为在User
模型里定义了隐藏字段的属性:
classUserextendsAuthenticatable { //... /** *这个数组用来定义需要隐藏的字段。 * *@vararray */ protected$hidden=[ 'password','remember_token', ]; }
所以,默认情况下这些字段是隐藏的,如果你想在导出数据的时候某些字段不被导出的话,可以直接在模型中定义隐藏属性$hidden
。出于某种原因,Laravel Excel 包的官方文档中并没有提及公式,但是这是Excel 重要的功能!幸运的是,我们可以直接将公式写在导出数据的类中,我们需要设置cell
的值,就像这样:=A2+1 or SUM(A1:A10)
。其中一种方式就是实现WithMapping
接口:
useAppCustomer; useMaatwebsiteExcelConcernsFromCollection; useMaatwebsiteExcelConcernsWithMapping; classCustomersExportFormulasimplementsFromCollection,WithMapping免费云主机域名 { publicfunctioncollection() { returnCustomer::all(); } /** *@varCustomer$customer *@returnarray */ publicfunctionmap($customer):array { return[ $customer->id, '=A2+1', $customer->first_name, $customer->last_name, $customer->email, ]; } }
关于“Laravel Excel的功能怎么使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Laravel Excel的功能怎么使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。
这篇文章主要讲解了“jquery如何给标签改内容”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery如何给标签改内容”吧! 两种修改方法:1、利用jquery选择器获取h标签对象,用text()修改该对象…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。