Laravel Excel包的五个隐藏特性

Laravel Excel包最近庆祝了版本3的一个新里程碑,它的新功能有助于简化高级用例,并且使用简单。让我们来探索一些你可能不知道的隐藏功能,这使得Laravel Excel成为一个使用Excel的入门包。 1. 从HTML/Blade导出/表.blade.php: 1 2 3 4 5First name 6Last name 7Email 8Created at 9Updated at10111213@foreach ($customers as $customer)1415{{ $customer->id }}16{{ $customer->first_name }}17{{ $customer->last_name }}18{{ $customer->email }}19{{ $customer->created_at }}20{{ $customer->updated_at }}2122@endforeach2324您可以重新使用它导出同一个表进入Excel。第1步。生成导出类1php artisan make:export CustomersFromView>第2步。使用FromView执行操作。 1namespace AppExports; 2 3use AppCustomer; 4use IlluminateContractsViewView; 5use MaatwebsiteExcelConcernsFromView; 6 7class CustomersExportView implements FromView 8{ 9public function view(): View10{11return view(\"customers.table\", [13]);14}15}这里是结果Excel文件:注意:您只能导出HTML表格,没有任何布局标记,如HTML,body,div等。Export to PDF,HTML,and others 2. Export to PDF,HTML,and others尽管这个包被称为Laravel Excel,但它提供了更多格式的导出。使用起来很简单,在类中再添加一个参数:1return Excel::download(new CustomersExport(), \"customers.xlsx\", \"Html\");是的,你做对了。HTML。它看起来是这样的:我知道没有多少款式。这是源代码:不仅如此,它还允许导出到PDF,您甚至可以从三个库中选择它。同样,您需要做的就是指定格式作为最后一个参数–这里是他们文档中的屏幕截图:注意:您还必须通过composer安装所选的PDF包,例如:***4**这里是PDF的外观:格式化单元格,但是您希望Laravel Excel包有一个强大的\"parent\"–PhpSpreadsheet。所以它采用了所有的底层功能,包括以各种方式格式化单元格。下面是如何在Laravel Export类中使用它,例如应用程序/导出/CustomersExportStyling.php文件:步骤1。在标题中使用适当的类。1use MaatwebsiteExcelConcernsWithEvents;2use MaatwebsiteExcelEventsAfterSheet;步骤2。在实现部分中使用WithEvents。1class CustomersExportStyling implements FromCollection, WithEvents2{3// ...步骤3。创建registerEvents()方法对于后页事件。 1/** 2 * @return array 3 */ 4public function registerEvents(): array 5{ 6return [> 8// ... HERE YOU CAN DO ANY FORMATTING 9},10];11}这里有一个示例: 1/** 2 * @return array 3 */ 4public function registerEvents(): array 5{ 6return [> 8// All headers - set font size to 14>10$event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setSize(14);1112// Apply array of styles to B2:G8 cell range \"FFFF0000\"],18]19]20];21$event->sheet->getDelegate()->getStyle(\"B2:G8\")->applyFromArray($styleArray);2223// Set first row to height 2024$event->sheet->getDelegate()->getRowDimension(1)->setRowHeight(20);2526// Set A1:D4 range to wrap text in cells27$event->sheet->getDelegate()->getStyle(\"A1:D4\")28->getAlignment()->setWrapText(true);29},30];31}这些\"随机\"演示样式示例的结果如下所示:所有这些示例,以及更多示例,您可以在phpspreadsheetdocs的Recipes页面中找到。Hidden Fields From Model,您将看到一些字段丢失:密码和记住令牌:这是因为这个应用程序/用户.php属性: 1class User extends Authenticatable 2{ 3// ... 4 5/** 6* The attributes that should be hidden for arrays. 7* 8* @var array 9*/10protected>11\"password\", \"remember_token\",12];13},这些字段在默认情况下是隐藏的,但它向我们显示了Laravel Excel包的行为-如果您想保护某些字段不被导出,您可以它直接存在于模型中。。但这就是使用Excel的意义所在!幸运的是,将公式写入导出的文件非常简单。我们需要像在Excel中那样设置单元格值,例如,>或SUM(A1:A10)。其中一种方法是使用WithMapping::************** 1use AppCustomer; 2use MaatwebsiteExcelConcernsFromCollection; 3use MaatwebsiteExcelConcernsWithMapping; 4 5class CustomersExportFormulas implements FromCollection, WithMapping 6{ 7public function collection() 8{ 9return Customer::all();10}1112/**13* @var Customer $customer14* @return array15*/16public function map($customer): array17{18return [19$customer->id,21$customer->first_name,22$customer->last_name,23$customer->email,24];25}26},因此,这只是Laravel Excel的五个鲜为人知的特性。如果你想了解更多,我有一个独特的在线课程叫做Excel Export/Import在Laravel,去看看吧! 3. 格式化单元格,但是您希望Laravel Excel包有一个强大的\"parent\"–PhpSpreadsheet。所以它采用了所有的底层功能,包括以各种方式格式化单元格。下面是如何在Laravel Export类中使用它,例如应用程序/导出/CustomersExportStyling.php文件:步骤1。在标题中使用适当的类。1use MaatwebsiteExcelConcernsWithEvents;2use MaatwebsiteExcelEventsAfterSheet;步骤2。在实现部分中使用WithEvents。1class CustomersExportStyling implements FromCollection, WithEvents2{3// ...步骤3。创建registerEvents()方法对于后页事件。 1/** 2 * @return array 3 */ 4public function registerEvents(): array 5{ 6return [> 8// ... HERE YOU CAN DO ANY FORMATTING 9},10];11}这里有一个示例: 1/** 2 * @return array 3 */ 4public function registerEvents(): array 5{ 6return [> 8// All headers - set font size to 14>10$event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setSize(14);1112// Apply array of styles to B2:G8 cell range \"FFFF0000\"],18]19]20];21$event->sheet->getDelegate()->getStyle(\"B2:G8\")->applyFromArray($styleArray);2223// Set first row to height 2024$event->sheet->getDelegate()->getRowDimension(1)->setRowHeight(20);2526// Set A1:D4 range to wrap text in cells27$event->sheet->getDelegate()->getStyle(\"A1:D4\")28->getAlignment()->setWrapText(true);29},30];31}这些\"随机\"演示样式示例的结果如下所示:所有这些示例,以及更多示例,您可以在phpspreadsheetdocs的Recipes页面中找到。Hidden Fields From Model,您将看到一些字段丢失:密码和记住令牌:这是因为这个应用程序/用户.php属性: 1class User extends Authenticatable 2{ 3// ... 4 5/** 6* The attributes that should be hidden for arrays. 7* 8* @var array 9*/10protected>11\"password\", \"remember_token\",12];13},这些字段在默认情况下是隐藏的,但它向我们显示了Laravel Excel包的行为-如果您想保护某些字段不被导出,您可以它直接存在于模型中。。但这就是使用Excel的意义所在!幸运的是,将公式写入导出的文件非常简单。我们需要像在Excel中那样设置单元格值,例如,>或SUM(A1:A10)。其中一种方法是使用WithMapping::************** 1use AppCustomer; 2use MaatwebsiteExcelConcernsFromCollection; 3use MaatwebsiteExcelConcernsWithMapping; 4 5class CustomersExportFormulas implements FromCollection, WithMapping 6{ 7public function collection() 8{ 9return Customer::all();10}1112/**13* @var Customer $customer14* @return array15*/16public function map($customer): array17{18return [19$customer->id,21$customer->first_name,22$customer->last_name,23$customer->email,24];25}26},因此,这只是Laravel Excel的五个鲜为人知的特性。如果你想了解更多,我有一个独特的在线课程叫做Excel Export/Import在Laravel,去看看吧!

CSS无头WordPress到底有多合适?

我想知道无头WordPress会在哪里登陆。\"headless\"指的是只使用WordPress管理,通过WordPress restapi构建面向用户的站点,而不是传统的WordPress主题结构?WordPress的未来?还是相对利基?需求在哪里?当然,对它有需求。我知道很多人都这么做。例如,Gatsby有一个gatsby-source-wordpress插件,它允许您以使用wordpressrestapi的方式从WordPress站点获取内容,并将其缓存为GraphQL,以便在React-power...

日期:2021-06-24 01:15:34 浏览:595

CSS制作带有粘性页眉和页脚的表格变得更容易了

不久前,当我在博客中看到HTML中的粘性页眉和页脚时,一个表同时有粘性页眉和粘性第一列。在它里面,我从来没有在任何、或元素上使用position: sticky,因为即使Safari和Firefox可以做到这一点,Chrome也做不到。但是它可以做表格单元格,比如和,这是一个相当不错的解决办法。好吧,这已经改变了。我通过Twitter听说Chrome在v91中\"重写了表格\"。https://t.co/vTBplXWWtT我看到它掉了下来,升级了,然后做了一个快速测试。嘿,看看有粘性的表格页眉和页脚。@C...

日期:2021-06-24 02:00:01 浏览:914

CSS技巧编年史XXXX

只是我最近做的一些非现场工作的一个小链接汇总。就像我习惯的那样。DevJourney播客#151 Chris Coyier从陶瓷到CSS技巧和代码笔\"Chris带我们从玩他的第一个C64到他的陶瓷文学学士,再回到web开发。我们讨论了他在这一过程中的不同立场,以及他们是如何缓慢但肯定地引导他走向web开发的。我们浏览了CSS技巧的创造和娱乐,在开放中学习,以及美好的一天是什么样子。Podrocket Podcast火箭手术:Kaelan和Chris Coyier比较笔记我被要求删除这里嵌入的音频,如果你想...

日期:2021-06-24 02:00:03 浏览:840

CSS使用子资源完整性保护您的网站

当您从外部服务器加载文件时,您相信您请求的内容是您期望的内容。由于您不自己管理服务器,因此您依赖于另一个第三方的安全性,从而增加了攻击面。信任第三方并不是天生的坏事,但它肯定应该在网站安全的背景下加以考虑。一个真实的例子这不是纯粹的理论危险。忽视潜在的安全问题可能而且已经造成严重后果。2019年6月4日,Malwarebytes宣布他们在网站上发现了一个恶意的略读程序NBA.com. 由于Amazon S3存储桶受损,攻击者能够修改JavaScript库以窃取客户的信用卡信息。值得担心的不仅仅是JavaSc...

日期:2021-06-24 02:00:03 浏览:742

CSS联合的可能性

这是首字母缩略词RSS中不是形容词的一个词。非常简单联合更新:Lol这里有两个错误。RSS是首字母缩写而不是首字母缩写,\"Really\"是副词而不是形容词。RSS不仅仅是RSS阅读器。尽管如此,如果我不喜欢RSS阅读器。它是关于把内容放在一种设计成可移植的格式。内容的API并不是一个隐喻,这就是它的字面含义。RSS一直在我的脑海中,因为它就像我的日报,但我敢打赌它并不是人们关注的最高峰,甚至是开发者。尽管如此,它还是受到了一点关注,因为谷歌在androidchrome中引入了一个\"following\...

日期:2021-06-24 03:00:02 浏览:575

CSS在开放细节元素上添加背景

关于元素有一点奇怪,那就是,当它打开时,并不总是100%清楚该元素内部的内容和不内部的内容。我不是说总是重要,或者说它是一个特别难解决的问题,我只是注意到它最近出现在我身上。这里有一个直观的例子:这里的文本在里面,什么不是?这个解决方案是…CSS。把的样式设计得有点独特,这样问题就解决了。即使你希望排版是一样的,或者你不想任何独家风格,直到被打开,这仍然是可能的。使用alpha透明填充,您甚至可以确保更深的嵌套保持清晰。对于只插入内联内容的<详细信息>(如\"spoiler\"UI或其他内容),...

日期:2021-06-24 03:00:04 浏览:740

CSS容器查询的聚宝盆

我不知道是什么原因,但是我的feed在过去的几周里充斥着关于CSS容器查询的文章。有关集装箱查询的热议实际上始于去年12月,当时米丽亚姆•苏珊娜(Miriam Suzanne)发布了一份提案(采纳了大卫•巴隆的提案),但3月底,Una Kravets在推特上发布的一条消息称,他们在chrome://flags的#enable-container-queries旗后投放了Chrome Canary 91.0.4459.0在如此短的时间内,容器查询已经覆盖了如此多的地方,而且规范甚至还不是最终的!我很高兴看到C...

日期:2021-06-24 03:00:04 浏览:895

CSS target=blank

那会不会让你的眼睛有点抽搐?就像…是打字错误。值的开头应该是带有下划线的>。就像…Welp, that\"s correct syntax!In the case of the no-underscore>, the blank部分只是一个名称。可能是任何东西。它可以是>,或者,可能是为了预示这里的目的:>。是一个特殊的关键字,它将在新选项卡中打开链接,每次都打开一个新选项卡。>将在新选项卡中打开第一个单击的链接,但任何共享>的链接都将在新打开的选项卡中打开。我从来不知道这一点!我相信这条微博的解释。我创建...

日期:2021-06-24 04:00:02 浏览:984

CSS查看WCAG 2.5.5以获得更好的目标尺寸

你有没有经历过这样的挫折:试图点击移动设备上的一个按钮却什么也不做,因为目标大小不够大,而且它在你的按键上不起作用?也许你有更大的手指,像我一样,也可能是由于灵活性有限。这是因为我们,即用户,必须与之交互的元素的目标区域越来越小,我们来谈谈如何使其足够大,以便用户能够轻松地与元素交互。如果用户在一个小型手持式触摸屏设备上访问内容,而这个设备的不动产要紧得多,那么这将是一个特别大的问题。成功标准重温我在上一篇涉及WCAG 2.1标准的文章中谈到了成功标准,Label in Name。简言之,WCAG标准是我们...

日期:2021-06-24 04:00:03 浏览:521

CSS Trickz:Netlify随需应变构建器的实验

默认情况下,WordPress站点有一个API。想看看这个网站的最新帖子吗,只是一组特定的数据…JSON格式?给你。Alex Riviere用它做了一个笑话站点。起初,当加载该API客户端时,该站点将fetch。很好,但是如果我们认真考虑一下,它对于访问站点的人来说是非常低效的(也就是说,比服务器呈现的HTML慢),对于API命中率也不是很高。所以,Alex用Netlify函数重新编写了它。然后Netlify函数将从API中fetch(在云中的节点中),并为预呈现的HTML提供服务。这可能更好一些,但正如亚...

日期:2021-06-24 04:00:04 浏览:563