Laravel Maatwebsite \ Excel speci c строка Фактическое время - PullRequest
0 голосов
/ 29 марта 2020

Я использую Laravel Maatwebsite \ Excel для экспорта времени входа и выхода пользователя, но мне нужно добавить строку Actual Time, чтобы рассчитать время между входом и выходом из системы. Я делаю таблицу, чтобы получить все это время, и она работает очень хорошо, Как я могу экспортировать Excel как ту же самую таблицу HTML, Любая помощь, пожалуйста. class UsersExport:

 use Exportable;
 protected $userexport;

  public function __construct($userexport = null)
{
     $this->userexport = $userexport;
}
/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
   // return UserLoginHistory::all();
     return $this->userexport;
}

public function headings(): array
{
    return [

        'Name',
        'Department',
        'Login',
        'Logout',
        'Actual Time',


        ];
}

Контроллер экспорта:

public function exportbydate(Request $request)
{  
   $from =new Carbon( $request->StartDate);
    $to =new Carbon( $request->EndDate);

    $userexport= DB::table('_user_login_history')
    ->join('users','users.id','_user_login_history.user_id')
    ->join('departs','departs.id','users.dep_id')
    ->where('user_id',Auth::user()->id)

    ->whereBetween('_user_login_history.login_at', [$from->format('Y-m-d')." 00:00:00", $to->format('Y-m-d')." 23:59:59"])

    ->select('name',
        'departname',
        'login_at',
        'logout_at',
        'Actual Time'
       )
    ->get();
   return(new UsersExport($userexport))->download('user.xlsx'); 
} 

Я создаю HTML таблицу, которая имеет то же самое, но работает хорошо.

<table class="basic-table">

            <tbody><tr>
                <th>Login</th>
                <th>Logout</th>
                <th>Actual Time</th>

            </tr>
                @foreach($mytimesM as $mytim)
            <tr>
                <td data-label="Column 1">{{ date('d M y, h:i a', strtotime($mytim->login_at)) }}</td>
                <td data-label="Column 2">{{ date('d M y, h:i a', strtotime($mytim->logout_at)) }}</td>
                <td data-label="Column 3">{{ date_diff(new \DateTime($mytim->login_at), new \DateTime($mytim->logout_at))->format("%d day, %h Hrs, %i Min,%s sec") }}</td>

            </tr>
                 @endforeach

        </tbody></table>
...