Search code examples
excellaravelmaatwebsite-excel

How to export excel with phone number format data using Maatwebsite Laravel


I'm confused with laravel export using maatwebsite, I want to keep phone number data after exported with "+62" but the result is "62...".

  0 => array:17 [▼
"created_at" => "13 Sep 2016 @ 04:37:16"
"merchant_name" => "XXX"
"merchant_email" => "XXX"
"merchant_phone" => "+6281290926402"
"merchant_address" => """
  XXX
  """
"instagram_id" => "XXX"
"facebook_account" => "XXX"
"bank_name" => "CIMB Niaga"
"branch_name" => "XXX"
"province_name" => "DKI JAKARTA"
"city_name" => "JAKARTA SELATAN"
"district_name" => "CILANDAK"
"subdistrict_name" => "CIPETE SELATAN"
"postal_code" => "12410"
"account_name" => "XXX"
"account_number" => "XXX"
"merchant_status" => "active"

]

And here's my code to export the data

$result = Excel::create('Merchant Recap - '.$day.' '.$month.' '.$year.' '.$hour.':'.$minute.':'.$second, function ($excel) use ($day, $month, $year, $hour, $minute, $second, $data) {
        $excel->sheet('Order Recap', function($sheet) use ($day, $month, $year, $hour, $minute, $second, $data) {
            $row = 1;
            $sheet->row($row, array('Merchant Name', 'Merchant Email', 'Merchant Phone', 'Merchant Address', 'Instagram', 'Facebook', 'Bank of Merchant', 'Branch', 'Province', 'City', 'District', 'Subdistrict', 'Postal Code', 'Account Name', 'Account Number', 'Status', 'Created Date'));
            $sheet->cells('A'.$row.':Q'.$row, function($cells) {
                $cells->setFont(array(
                    'size' => 12,
                    'bold' => true
                ));
            });
            $row++;
            $sheet->setColumnFormat([
                'C' => "aaaaa",
                'O' => "#",
                'Q' => "dd mmmm yyyy HH:mm:ss"
            ]);
            foreach ($data as $key => $merchant) {
                $sheet->row
                ($row, array( 
                    $merchant->merchant_name
                    ,$merchant->merchant_email
                    ,$merchant->merchant_phone
                    ....
                    ,PHPExcel_Shared_Date::PHPToExcel(strtotime($created_at))
                ));
                $sheet->getStyle('A'.$row.':Q'.$row)->getAlignment()->applyFromArray(
                    array('horizontal' => 'left')
                );
                $row++;
            }

            $sheet->setAutoFilter('A4:Q4');

        });

    })->export('xls');

Please, help me to solve that problem (export the data with phone number format). Also if phone number in database "081..." then after exported is "81...". I want to keep phone number in database full export to excel without changed format. Thank you in advance.


Solution

  • Try changing the column format from:

    'C' => "aaaaa"
    

    ...to:

    'C' => "###-###-####"
    

    ...or:

    'C' => "[<=9999999]###-####;(###) ###-####"