如何使用Maatwebsite Laravel导出带有电话号码格式数据的Excel

时间:2018-01-09 08:25:34

标签: excel laravel maatwebsite-excel

我对使用maatwebsite的laravel导出感到困惑,我希望在输出" + 62"之后保留电话号码数据。但结果是" 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"

这是我导出数据的代码

$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');

请帮我解决这个问题(用电话号码格式导出数据)。如果数据库中的电话号码" 081 ..."然后在导出后是" 81 ..."。我希望将数据库完全导出的电话号码保存到excel而不更改格式。提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试更改列格式:

'C' => "aaaaa"

...为:

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

...或:

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

答案 1 :(得分:0)

更改列格式:

[
    'D' => '+#'
]

希望对您有帮助。