2016-10-20 62 views
1

我最近下載了Laravel中的maatwebsite/excel包以導出Excel格式的數據庫記錄。使用Laravel maatwebsite/excel包在導出的excel文件中出現額外的列和行

安裝成功,我可以以excel(.xls)格式導出預期的數據庫記錄。

但我注意到有一個額外的列和行被插入到預期的數據,如下圖所示:

enter image description here

此處是行不。 8和H列是不需要的。 以下是我的控制器代碼:

... 
$audit_logs = $model->whereBetween('audit_log_created_date', [$_from, $_to])->get(); 
$file_name = 'Audit Log Report ('.$_from.' to '.$_to.')'; 
$type  = AuditLog::$audit_log_type; 
$action  = AuditLog::$audit_log_action; 

Excel::create($file_name, function($excel) use ($audit_logs,$type,$action) { 
    $excel->sheet('Sheet 1', function($sheet) use ($audit_logs,$type,$action) { 
     $sheet->loadView('/admin/audit-log/_export')->with([ 
        'audit_logs' => $audit_logs, 
        'type'  => $type, 
        'action'  => $action 
       ]); 
    }); 
})->export(); 

而下面是我的看法代碼:

<style> 
    .trr { 
     background-color: #0099FF; 
     color: #ffffff; 
     align: center; 
     padding: 10px; 
     height: 20px; 
    } 
</style> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<html> 
<table> 
    <thead> 
    <tr class="trr"> 
     <td>S.no.</td> 
     <td>Type</td> 
     <td>Action</td> 
     <td>Event</td> 
     <td>Description</td> 
     <td>Username</td> 
     <td>Date & Time</td> 
    </tr> 
    </thead> 
    <tbody> 
    @if(!empty($audit_logs)) 
    <?php $count = 0; ?> 
    @foreach($audit_logs as $audit_log) 
    <?php $count = $count+1; ?> 
    <tr style="border: 1px solid #040404; background-color: <?php if($count%2==0) echo '#E3F2FD'; else echo '#BBDEFB'; ?>;"> 
     <td>{{ $count }}</td> 
     <td>{{ $type[$audit_log->audit_log_type] or null }}</td> 
     <td>{{ $action[$audit_log->audit_log_action] or null }}</td> 
     <td>{{ $audit_log->audit_log_event_id or null}}</td> 
     <td>{{ $audit_log->audit_log_description or null}}</td> 
     <td>{{ $audit_log->user->user_name or null}}</td> 
     <td>{{ $audit_log->audit_log_created_date or null}}</td> 
    </tr> 
    @endforeach 
    @endif 
    </tbody> 
</table> 
</html> 

如果有人能找出問題,請讓我知道。

謝謝你的幫助。

回答

0

我猜這是一個錯誤發生在PHPExcel當您嘗試應用一些樣式的整個行。您可以通過將樣式從行移動到單個單元格來解決此問題。

<style> 
    .trr { 
     background-color: #0099FF; 
     color: #ffffff; 
     align: center; 
     padding: 10px; 
     height: 20px; 
    } 
    td { 
     border: 1px solid #040404; 
    } 
    tr.odd > td { 
     background-color: #E3F2FD; 
    } 

    tr.even > td { 
     background-color: #BBDEFB; 
    } 
</style> 

它僅僅定義了細胞的「奇」和「甚至」行風格: 這裏有什麼用刀片模板您最初的「風格」的發生。 現在你應該加上「奇」和「甚至」類的記錄:

<tr class="{{count % 2 == 0? "even": "odd"}}"> 

這樣PHPExcel將直接應用樣式的細胞,並不會增加額外的電池。

相關問題