首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用excel导出Laravel

问使用excel导出Laravel
EN

Stack Overflow用户
提问于 2020-01-09 22:07:13
回答 3查看 3.3K关注 0票数 0

我正在尝试使用laravel导出一些excel格式的数据。但在这种格式中,我想显示一些我不知道的其他行。

代码语言:javascript
复制
<?php
namespace App\Exports;
use App\SalesLog;
use App\SalesLogItem;
use RegistersEventListeners;

use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;

use App\Helpers\DateHelper;
use Maatwebsite\Excel\Events\AfterSheet;
use Maatwebsite\Excel\Events\BeforeExport;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\FromCollection;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;


class SalesExport implements FromQuery, WithHeadings,ShouldAutoSize, WithEvents
{
    /**
    * @return \Illuminate\Support\Collection
    */
    use Exportable;


    public function __construct( $id,  $aircraft_name)
    {
        $this->id = $id;
        $this->aircraft_name=$aircraft_name;
    }

    public function headings(): array
    {
        return [
            '#No',
            'Item Description',
            'Unit Type',
            'Item Price',


        ];
    }




    public function query()
    {
        return SalesLog::query()->join('sales_log_items','sales_logs.id','sales_log_items.sales_log_id')
            ->where('sales_log_items.sales_log_id', $this->id)
            ->select('sales_log_items.product_id','sales_log_items.name','sales_log_items.unit_type','sales_log_items.price');
    }
 }



public function index($log_id)
{
    $flight_nr=SalesLog::find($log_id)->flight_number_one;
    $date=date('y-m-d');
    $excel_title='sales_log'.$date;

    $data=SalesLog::find($log_id);

    return (new SalesExport($log_id,$data->aircraft_name))->download($excel_title.'.xlsx');
}

在这段代码中,下载了一个excel文档,但它只显示了我在方法查询中获取的数据。

我想在开头显示一些页眉,然后在结尾显示页脚,这可能会有总数。有人能帮我找出要使用的函数吗?我使用的是maatwebsite 3.1

EN

回答 3

Stack Overflow用户

发布于 2020-01-09 22:28:12

您正在使用的Maatwebsite\Excel包允许从刀片视图文件导出。因此,您可以随心所欲地设计视图,制作页眉、页脚,在其中放置一个html <table>,然后将其用于导出。Docs here.

票数 0
EN

Stack Overflow用户

发布于 2020-01-09 22:29:46

Maatwebsite插件在某些情况下不能正常工作,我建议使用"PHPSpreadSheet“,你可以这样做: 1-创建excel文件作为模板2-读取excel文件3-将您的数据添加到excel文件4-保存并下载

代码语言:javascript
复制
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('./reports/template.xlsx');
$worksheet = $spreadsheet->getSheet(0);
$worksheet->getCell('C6')->setValue($sum_variable);
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xls');
$file_name='result_excel';
$writer->save($file_name);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'.$file_name.'"');
$writer->save("php://output");
票数 0
EN

Stack Overflow用户

发布于 2020-01-09 22:53:45

这篇文章可能会有所帮助。Click here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59665781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档