【问题标题】:Laravel Excel - blank sheets when creating multiple sheetsLaravel Excel - 创建多张工作表时的空白工作表
【发布时间】:2014-10-23 18:36:37
【问题描述】:

我有这个工作,使用 Laravel 4 和 Laravel Excel 从 mySQL 导出数据。我有 Regtype 和 Attendee 的对象,我希望每个 regtype 一张表与所有相关的与会者。我有一张与会者出口得很好。现在我为 regtypes 添加了一个循环,我可以获得多张纸,但所有纸都是空白的!

也许我必须使用 shareView?我不这么认为.. 我没有收到任何错误,也没有显示我传递给刀片模板的数据。

我的导出功能: 公共函数导出() { $date = date('Y_m_d'); \Excel::create('CMO_Connect_Attendees_Export_'.$date, function($excel) { $regtypes = Regtype::all(); foreach ($regtypes 作为 $regtype) { if( $regtype->attendees(3)->count() ) {

        $excel->sheet($regtype->name,  array('regtype' => $regtype), function($sheet) {
            $date = date('Y_m_d');
            $attendees = new Attendee;

            $atts = Attendee::where('block_id', '=', \Input::get('block_id'))
                ->where('regtype_id', '=', $regtype->id)
                ->get();
                $sheet->setStyle(array(
                    'font' => array(
                        'name'      =>  'Arial',
                        'size'      =>  12,
                        'bold'      =>  false
                    )
                ));
            $sheet->loadView('attendees.export', array('atts' => $atts))->with('curdate',$date)->with('regtype_name',$regtype->name);
            $atts = '';
        });
        } //endif
    } //endforeach

    $excel->export('xls');
    });
}

以及我将数据传递给的刀片模板(我传递了与会者以及 regtype 的日期和名称以显示在工作表的顶部:

<html>
<table>
  <tr>
    <td colspan="11">Attendees Export - {{ $curdate }} - {{ $regtype_name }}</td>
  </tr>
  <tr>
    <td>First Name</td>
    <td>Last Name</td>
    <td>Company</td>
    <td>Title</td>
    <td>Email</td>
    <td>Phone</td>
    <td>Address</td>
    <td>Addres 2</td>
    <td>City</td>
    <td>State</td>
    <td>Zip</td>
    <td>Date Created</td>
  </tr>
@foreach($atts as $att)
  <tr>
    <td> {{ $att->firstname }} </td>
    <td> {{ $att->lastname }} </td>
    <td> {{ $att->company }} </td>
    <td> {{ $att->title }} </td>
    <td> {{ $att->email }} </td>
    <td> {{ $att->phone }} </td>
    <td> {{ $att->address }} </td>
    <td> {{ $att->address2 }} </td>
    <td> {{ $att->city }} </td>
    <td> {{ $att->state }} </td>
    <td> {{ $att->zip }} </td>
    <td> {{ $att->created_at }} </td>
  </tr>
@endforeach
</table>
</html>

感谢您的帮助!

【问题讨论】:

    标签: laravel-4 laravel-excel


    【解决方案1】:

    我整理了 - 下面是我现在的导出功能。我通过 composer 更新了供应商文件(意识到我使用的是稍旧的版本)并在调用 $sheet 方法时使用 use($regtype 修改了我的代码(将 regtype 对象传递到工作表中)。我假设您将变量或对象传递到工作表中的方式与将数据传递到刀片模板的方式相同,但这是不正确的。

    public function export() 
    {
        $date = date('Y_m_d');
        \Excel::create('CMO_Connect_Attendees_Export_'.$date, function($excel) {
            $excel->setTitle('CMO Connect Attendee Data Export');
            $excel->setCreator('Dylan Glockler')
                  ->setCompany('Bryan Allen Events');
            $excel->setDescription('All attendee event data for Adobe CMO Connect');
        $regtypes = Regtype::all();
        $summary = '';
        foreach ($regtypes as $regtype) {
            if( $regtype->attendees(3)->count() ) {
                $summary = $summary . $regtype->name;
                $summary = $summary . ': '.$regtype->attendees(3)->count();
                $summary = $summary . ' | ' . $regtype->id . '<br />';
    
                $excel->sheet($regtype->name, function($sheet) use($regtype) {
                    $date = date('Y_m_d');
                    $atts = Attendee::where('block_id', '=', \Input::get('block_id'))
                        ->where('regtype_id', '=', $regtype->id)
                        ->get();
                        $sheet->setStyle(array(
                            'font' => array(
                                'name'      =>  'Arial',
                                'size'      =>  12,
                                'bold'      =>  false
                            )
                        ));
                    $sheet->loadView('attendees.export')->with('curdate',$date)->with('atts',$atts)->with('regtype_name',$regtype->name)->with('att_count',$regtype->attendees(3)->count());
                });
            } //endif
        } //endforeach
        $excel->export('xls');
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多