0
votes

I have a problem, when I try to generate data from database using maatwebsite/laravel-excel to .csv I get an error like this: Object of class stdClass could not be converted to string.

Sometimes, when I selected data from the database using only one field, the file can generate(.csv). This is my error :

at HandleExceptions->handleError(4096, 'Object of class stdClass could not be converted to string', '/vendor/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php', 65, array('cell' => object(PHPExcel_Cell), 'value' => object(stdClass)))

This is my query for get data from database, var $temp for accommodate query results.

    public function coba ($type){
        $temp = DB::select(DB::raw("select regionalid, 
        nvl(sum(case when lastactiontype='0' then totalcharge end),0) as creditlimit_usage,
        count(case when lastactiontype='0' then msisdn end) as creditlimit_rec,
        nvl(sum(case when lastactiontype='1' then totalcharge end),0) as blocked_usage,
        count(case when lastactiontype='1' then msisdn end) as blocked_rec,
        nvl(sum(case when lastactiontype='2' then totalcharge end),0) as adjusted_usage,
        count(case when lastactiontype='2' then msisdn end) as adjusted_rec,
        nvl(sum(case when lastactiontype='3' then totalcharge end),0) as sms_usage, 
        count(case when lastactiontype='3' then msisdn end) as sms_rec,
        nvl(sum(case when lastactiontype='5' then totalcharge end),0) as call_usage, 
        count(case when lastactiontype='5' then msisdn end) as call_rec,
        nvl(sum(case when lastactiontype in ('1','2','3','5') then totalcharge end),0) as total_usage, 
        count(case when lastactiontype in ('1','2','3','5') then msisdn end) as total_rec
    from alarms_v2
    where alarmdate = '$today'
    group by regionalid order by regionalid"));

    return Excel::create('datadoc', function ($excel) use ($temp) {
        $excel->sheet('mySheet', function ($sheet) use ($temp) {
            $sheet->fromArray($temp);
        });
    })->download($type);

I expect to be able to generate data from the database to .csv or excel it can work properly.

1

1 Answers

0
votes

Try this:

$sheet->fromArray((array)$temp);