Laravel 4 Laravel Excel-创建多张图纸时为空白图纸

Laravel 4 Laravel Excel-创建多张图纸时为空白图纸,laravel-4,laravel-excel,Laravel 4,Laravel Excel,我使用Laravel4和LaravelExcel从mySQL导出数据。我有Regtype和Attendee的对象,我希望每个Regtype有一张包含所有相关与会者的工作表。我有一张很好的与会者名单。现在我已经为regtypes添加了一个循环,我可以得到多个工作表,但是所有工作表都是空白的 也许我必须使用共享视图?我不这么认为。。我没有收到任何错误,并且传递给刀片模板的所有数据都没有显示 我的导出功能: 公共功能导出() { $date=日期('Y_m_d'); \Excel::创建('CMO_C

我使用Laravel4和LaravelExcel从mySQL导出数据。我有Regtype和Attendee的对象,我希望每个Regtype有一张包含所有相关与会者的工作表。我有一张很好的与会者名单。现在我已经为regtypes添加了一个循环,我可以得到多个工作表,但是所有工作表都是空白的

也许我必须使用共享视图?我不这么认为。。我没有收到任何错误,并且传递给刀片模板的所有数据都没有显示

我的导出功能: 公共功能导出() { $date=日期('Y_m_d'); \Excel::创建('CMO_Connect_Attenders_Export.$日期,函数($Excel){ $regtypes=Regtype::all(); foreach($regtypes作为$regtype){ 如果($regtype->attenders(3)->count()){

以及我要向其传递数据的刀片模板(我传递与会者以及要显示在工作表顶部的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>

与会者导出-{{$curdate}}-{{$regtype_name}
名字
姓
单位
标题
电子邮件
电话
地址
地址2
城市
陈述
拉链
创建日期
@foreach($atts作为$att)
{{$att->firstname}
{{$att->lastname}
{{$att->company}
{{$att->title}
{{$att->email}
{{$att->phone}
{{$att->address}
{{$att->address2}
{{$att->city}
{{$att->state}
{{$att->zip}
{{$att->created_at}
@endforeach

感谢您的帮助!

我整理好了-下面是我现在的导出功能。我通过composer更新了供应商文件(意识到我使用的是稍旧的版本),并在调用
$sheet
方法时使用($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');
    });
}
公共函数导出()
{
$date=日期('Y_m_d');
\Excel::创建('CMO_Connect_Attenders_Export.$日期,函数($Excel){
$excel->setTitle(“CMO连接与会者数据导出”);
$excel->setCreator('Dylan Glockler')
->赛特公司(“布莱恩艾伦事件”);
$excel->setDescription('Adobe CMO Connect的所有与会者事件数据');
$regtypes=Regtype::all();
$summary='';
foreach($regtypes作为$regtype){
如果($regtype->attenders(3)->count()){
$summary=$summary.$regtype->name;
$summary=$summary.:'.$regtype->attenders(3)->count();
$summary=$summary.“|”。$regtype->id.“
”; $excel->sheet($regtype->name,function($sheet)use($regtype){ $date=日期('Y_m_d'); $atts=Attendee::where('block\u id','=',\Input::get('block\u id')) ->其中('regtype_id','=',$regtype->id) ->get(); $sheet->setStyle(数组)( '字体'=>数组( 'name'=>'Arial', “大小”=>12, 'bold'=>错误 ) )); $sheet->loadView('attendes.export')->with('curdate',$date)->with('atts',$atts)->with('regtype_name',$regtype->name)->with('att_count',$regtype->attendes(3)->count()); }); }//endif }//endforeach $excel->export('xls'); }); }
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');
    });
}