Laravel-Excel ver 3 では まだ現時点では import が使えないようなので ver 2 を入れます。( 参考: https://goo.gl/wxHLE7 )
composer で インストールします
composer require "maatwebsite/excel:~2.1.0"
インストールされたモジュールのうち excel 関連のバージョンを調べて置きます
composer show | grep excel
maatwebsite/excel 2.1.30 Supercharged Excel exports in Laravel
phpoffice/phpexcel 1.8.2 PHPExcel - OpenXML - Read, Create and Write Spreadsheet ...
Laravel Excel の 2.1.30 と phpexcel の 1.8.2 がインストールされています。
ググる時にはこれらのバージョンを参考にしましょう。
( storage/excel/ )は存在しないので作成します。
Route::get('/test/excel', 'TestController@excel');
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
class TestController extends Controller
{
public function excel()
{
$excel_file = storage_path('excel/test.xls');
Excel::load($excel_file, function($reader) {
// 1番目のシートを選択
$reader->sheet(0, function($sheet) {
// セルA3に現在の日付を書き込み
$sheet->cell('A3', function($cell) {
$cell->setValue( now()->format('Y/m/d') );
});
});
})->export('xlsx');
}
}
https://YOUR-APP.COM/test/excel
にアクセスすると、エクセルファイルがダウンロードされます。
最初のシートの「A3」に今日の日付が書き込まれていることを確認します。
まずこれで Laravel Excel の 動作確認の完了です。
PHPでするよりLibreOfficeを使用しましょう。再現性が上がります。(それでも80点ぐらいの再現度ですが。)
yum -y install libreoffice libreoffice-langpack-ja
インストール後 バージョンを確認します。
libreoffice --version
もし libreoffice が見つからない場合は こちらから検索します。
find / -name soffice.bin
wget https://ipafont.ipa.go.jp/old/ipafont/IPAfont00303.php -O IPAfont00303.zip
unzip IPAfont00303.zip
cd IPAfont00303
mv *.ttf /usr/share/fonts
cd ..
rm -rf IPAfont00303
rm -f IPAfont00303.zip
mkdir genshingothic
cd genshingothic
wget https://osdn.jp/downloads/users/8/8637/genshingothic-20150607.zip genshingothic-20150607.zip
unzip genshingothic-20150607.zip
mv *.ttf /usr/share/fonts
cd ..
rm -rf genshingothic
rm genshingothic-20150607.zip
fc-list | grep IPA
コマンドラインから以下のコマンドを実行します。
libreoffice --headless --convert-to pdf --outdir /home/kusanagi/pdf test.xls
パスは絶対パスで指定しておくと確実です。