Laravel Excel エクスポートしたセルが折り返し表示しない、フォントを変えたい、見栄えを何とかしたい！

### Laravel Excelは、かゆい所に手が届く??
Laravel Excelのインストールの仕方や使い方については、いくつかのサイトを参考にして何とかなると思います。

問題は、デフォルトのスタイルが、使い道に意図したデザインにならないのを何とかしたい！
例えば。。。。
・フォント
・フォントサイズ
・文字の折り返し
・文字の詰め方向
・列幅

設定はこうしたらできた。使いたい機能は、implementsの後に、付け足して、それに関連するpublic functionを書いて行くと良い。
 
### 顧客リストをエクスポートする場合の例で
```php:app/Exports/CompaniesExport.php
<?php

namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithColumnWidths;
use Maatwebsite\Excel\Concerns\WithDefaultStyles;
use Maatwebsite\Excel\Concerns\WithHeadings;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Style;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;

class CompaniesExport implements FromArray, WithHeadings, WithDefaultStyles, ShouldAutoSize, WithColumnWidths
{
    protected $companies;

    /**
     * コントローラーからエクスポートする配列を受け取る
     */
    public function __construct(array $companies)
    {
        $this->companies = $companies;
    }

    /**
     * @return array
     */
    public function array(): array
    {
        return $this->companies;
    }

    /**
     * 1行目にヘッダーを入れる内容
     * @return array
     */
    public function headings(): array
    {
        return [
            'ID',
            '法人名',
            '郵便番号',
            '都道府県',
            '市区町村',
            '丁目・番地',
            'ビル名',
            '電話番号',
            'FAX番号'
        ];
    }

    /**
     * @param Worksheet $sheet
     * 列幅を数値で入れる
     * @return void
     */
    public function columnWidths(): array
    {
        return [
            'A'=>12,
            'B'=>25,
            'C'=>25,
            'D'=>12,
            'E'=>18,
            'F'=>12,
            'G'=>10,
            'H'=>25,
            'I'=>12,
        ];
    }

    /**
     * スタイルを設定する
     * @return array
     */
    public function defaultStyles(Style $defaultStyle)
    {
        // Or return the styles array
        return [
            'font' => [
                'name'   => 'MS PGothic',//MS P ゴシック
                'size' => 11,//フォントサイズ11px
            ],
            'alignment'=> [
                'horizontal' => Alignment::HORIZONTAL_LEFT,//左詰め
                'vertical' => Alignment::VERTICAL_TOP,//上詰め
                'wrapText' => true,//文字を折り返す
            ]
        ];
    }
}

```

コントローラーの方に書いているコードは以下の通り。
```php:app/Http/Controllers/CompanyController.php(例)
        //ここまでに$companiesに配列を作る。
        $export = new CompaniesExport($companies);//←$companiesをCompaniesExportに渡している。
        return Excel::download($export, 'companies.xlsx', \Maatwebsite\Excel\Excel::XLSX);
```
＊文字列の折り返しは、改行コードを使わずに、PHP_EOLを付け加える。
＊CSVエクスポートを作ったものをEXCELに置き換えるので、私の場合は、全部配列をつくって出力する方式を使っています。



これで、およそ狙った通りのレイアウト出力する事が出来ると思います。
本家に、リファレンスがもっとたくさんあると嬉しいですが、無かったので、いろいろ調べてこうなりました。
参考になればとおもいます。

### インストールの仕方や使い方の参考
本家
https://docs.laravel-excel.com/3.1/getting-started/
Laravel Excel 3.1 導入 + 使用例
https://qiita.com/y-oksaku/items/27fa2abc905527522262
Laravel Excelをマスターしよう
https://reffect.co.jp/laravel/laravel_excel_master
Laravel9でExcelファイルをインポート/エクスポートする方法【maatwebsite】
https://www.its-corp.co.jp/laravel9-excel-import-export/